ABPersonViewController

ABPersonViewController

我想将ABPersonViewController显示为模式而不是将其压入导航堆栈。我已经完成了这项工作,但是要保持完成按钮的存在,我不得不使用NSTimer每0.25秒添加一次按钮,因为完成视图的按钮可能会在视图出现时被删除,而在应用程序进入前台时始终会被删除。这是一个相当la脚的hack,所以我想知道是否有人有更好的主意:)

我做了一个ABPersonViewController的子类,它添加了done按钮,并在视图确实加载时启动计时器,并在释放视图时使计时器无效。

这是我的代码显示模态的样子:

- (IBAction)showContactModal:(id)sender{
    CNABPersonViewController *personViewController = [[CNABPersonViewController alloc] init];
    personViewController.displayedPerson = self.contact.record;
    personViewController.addressBook = [[CNAddressBookManager sharedManager] addressBook];
    personViewController.viewDelegate = self;
    personViewController.shouldShowLinkedPeople = YES;
    UINavigationController *navigationController =
    [[UINavigationController alloc] initWithRootViewController:personViewController];
    navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentViewController:navigationController animated:YES completion:nil];
}

最佳答案

这样我就成功了。插入以下行以将按钮添加到导航栏:

    personViewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Test" style:UIBarButtonItemStylePlain target:self action:@selector(_yourAddressBookAction)];


如果这不能解决您的问题,请向我们显示遇到问题的代码。

10-08 20:27