无法编辑或关闭CNContactViewController(iOS)
我正在我的应用程序中演示无法编辑或关闭CNContactViewController(iOS),ios,uinavigationcontroller,presentviewcontroller,cncontactviewcontroller,Ios,Uinavigationcontroller,Presentviewcontroller,Cncontactviewcontroller,我正在我的应用程序中演示CNContactViewController的一个实例。我希望用户能够编辑联系人,以及关闭此视图控制器。下面是显示视图控制器的代码,它嵌入在UINavigationController中。正如您在代码中所看到的,我有allowsdediting=YES,但查看屏幕截图;你可以看到我无法编辑。有人能帮我看看我遗漏了什么吗?谢谢 CNContactViewController *contactController = [CNContactViewController vie
CNContactViewController
的一个实例。我希望用户能够编辑联系人,以及关闭此视图控制器。下面是显示视图控制器的代码,它嵌入在UINavigationController
中。正如您在代码中所看到的,我有allowsdediting=YES
,但查看屏幕截图;你可以看到我无法编辑。有人能帮我看看我遗漏了什么吗?谢谢
CNContactViewController *contactController = [CNContactViewController viewControllerForUnknownContact:contact];
contactController.allowsEditing = YES;
contactController.delegate = self;
contactController.contactStore = store;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:contactController];
navController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:navController animated:YES completion:nil];
编辑:我尝试了@WrightCS建议的另一种方法:
[self presentViewController:contactController animated:YES completion:nil];
并且,确保添加此委托方法:
- (void)contactViewController:(CNContactViewController *)viewController
didCompleteWithContact:(CNContact *)contact{
[self dismissViewControllerAnimated:YES completion:nil];
}
但是,重复获取此错误日志:
[CNUI ERROR] Contact view delayed appearance timed out
不要创建
UINavigationController
实例,而是尝试直接显示联系人控制器
[self presentViewController:contactController animated:YES completion:nil];
CNContactViewControllerDelegate
出现在主线程上
问题是我错误地初始化了
CNContactViewController
,而不是:
CNContactViewController *contactController = [CNContactViewController viewControllerForUnknownContact:contact];
这将显示一个联系人,但不允许取消或编辑联系人视图,正确的选项(对于我的场景)是使用
CNContactViewController *contactController = [CNContactViewController viewControllerForNewContact:contact];
实际上,在创建
UINavigationController
实例之前,我已经尝试过了,但是会得到一个重复的错误日志:[CNUI error]联系人视图延迟外观超时
您实现了CNContactViewControllerDelegate
?我没有实现该方法;谢谢-我用我添加的内容对问题进行了编辑;仍然收到相同的日志错误。在一条评论中,该错误是iOS SDK 10的新错误,因此需要将其放入UINavigationController
中。
CNContactViewController *contactController = [CNContactViewController viewControllerForUnknownContact:contact];
CNContactViewController *contactController = [CNContactViewController viewControllerForNewContact:contact];