我想显示ABPersonViewController
为模式而不是将其推送到导航堆栈上。我已经完成了这项工作,但是为了保持一个完成按钮存在,我不得不使用 NSTimer 每 0.25 秒添加一次按钮,因为完成按钮可能会在视图出现时被删除,并且在应用程序进入前台时总是被删除。这是一个非常蹩脚的黑客,所以我想知道是否有人有更好的主意:)
我创建了一个ABPersonViewController
添加完成按钮的子类,并在视图加载时启动计时器,并在视图被释放时使其无效。
这是我的代码显示模态的样子:
- (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];
}