ではMyViewController
、ユーザーにアドレス帳から人を選択するように求めます: (ボタンのクリックで)
peoplePicker = [[ABPeoplePickerNavigationController alloc] init];
peoplePicker.peoplePickerDelegate = self;
[self presentViewController:peoplePicker animated:YES completion:NULL];
ユーザーが複数の電話番号を持つ人を選択した場合、ユーザーが電話番号の 1 つを選択できるようにする新しい UITableViewController を提示します。
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person {
// ...
next = [[ChoosePersonPhoneViewController alloc] initWithStyle:UITableViewStyleGrouped personPhoneInfoArray:personPhoneInfos];
[peoplePicker pushViewController:next animated:YES];
// ...
}
ユーザーが電話番号を選択したら、その電話番号を元の ViewController に戻し、 と の両方ABPeoplePickerNavigationController
を閉じたいと思いChoosePersonPhoneViewController
ます。
2 つの質問:
- 内から両方のView Controllerを閉じるにはどうすればよい
ChoosePersonPhoneViewController
ですか? MyViewController
内からアクセスするにはどうすればよいChoosePersonPhoneViewController
ですか?
私の推測では、次のようになります。
ABPeoplePickerNavigationController *peoplePicker = (ABPeoplePickerNavigationController *)self.navigationController;
MyViewController *nsvc = (MyViewController *)peoplePicker.presentingViewController;
parentViewController
andpresentingViewController
とpopViewController
/を使用して多くの組み合わせを試しましdismissViewController
たが、実際には理解できません.View Controller階層の理解が不足していることを示す例外が発生し続けています。いくつかのポインタまたは少なくとも RTFM リンクをいただければ幸いです。