objective-c - ABPersonViewController 完成编辑通知

标签 objective-c ios addressbook

根据 Apple 的快速联系人示例代码使用 ABPersonViewController。

ABRecordRef person = (ABRecordRef)[people objectAtIndex:0];
    ABPersonViewController *picker = [[[ABPersonViewController alloc] init] autorelease];
    picker.personViewDelegate = self;
    picker.displayedPerson = person;
    picker.allowsEditing = YES;
    [self.navigationController pushViewController:picker animated:YES];

我需要一种方式来通知选择器已完成编辑或已关闭,以便我可以更新我的数据存储中的一些缓存值。

Apple 的文档建议远 ionic 类化 ABPersonViewController。非常感谢任何建议!

最佳答案

    ABPersonViewController *personViewController = [[ABPersonViewController alloc] init];

        personViewController.personViewDelegate = self;
        personViewController.displayedPerson = person; 
        personViewController.allowsEditing=YES;
        personViewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back",nil) style:UIBarButtonItemStylePlain target:self action:@selector(ReturnFromPersonView)] ;
        [self.navigationController pushViewController:personViewController animated:YES];
        [personViewController release];

然后编写您的ReturnFromPersonView 方法和委托(delegate)方法

- (BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifierForValue
{
        // you can write you code here with  [self.navigationController popViewControllerAnimated:YES];
        return YES;     
}

如果您不喜欢“后退按钮”方法 - 您可以将代码直接写入 personViewController shouldPerformDefaultActionForPerson:

关于objective-c - ABPersonViewController 完成编辑通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414378/

相关文章:

iPhone SDK : How do I get a count of all the phone numbers in a address book?

ios - 如何使用授予访问权限以编程方式从地址簿中获取电子邮件地址? ( objective-c )

ios - UITableView 和 AutoLayout - 没有显示表格

ios - 水平条形图不从 0 开始

ios - MSMessagesAppViewController 没有正确调用 didSelect() ?

Objective-C:将属性引用传递给方法调用的正确方法

csv - 在 roundcube 中导入地址簿没有任何作用

c++ - 检测系统语言更改 OS X

ios - 在哪里以及如何__bridge

ios - 将标题分配给 UIViewController 时发生了一些奇怪的事情