CNContactViewController
アプリでのインスタンスを表示しています。ユーザーが連絡先を編集できるようにするだけでなく、このViewControllerを閉じることができるようにしたいと思います。以下は、に埋め込まれているViewControllerを表示するためのコードUINavigationController
です。コードでわかるように、私は持っていますallowsEditing = 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
問題は、私がCNContactViewController
間違って初期化していたことでした...代わりに:
CNContactViewController *contactController = [CNContactViewController viewControllerForUnknownContact:contact];
連絡先を表示しますが、連絡先ビューをキャンセルしたり編集したりするオプションを許可しない場合、正しいオプション(私のシナリオでは)を使用することです
CNContactViewController *contactController = [CNContactViewController viewControllerForNewContact:contact];
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加