ABPeoplePickerNavigationControllerで、遷移先をカスタマイズする方法
ABPeoplePickerNavigationControllerで、アドレスを選択した時に、自分で作成したビューへ遷移したかったんだけど、詰まってしまったんでメモ書き。
ABPeoplePickerNavigationControllerで、アドレスを選択した時の挙動は、ABPeoplePickerNavigationControllerDelegateのpeoplePickerNavigationController:shouldContinueAfterSelectingPerson:で実装することができる。
遷移先をオリジナルのビューにするためには、以下の2点に気をつける必要がある。
- デリゲートメソッドの戻り値としてNOを返却する。
- 親ビューのナビゲーションコントローラに対して、遷移先のビューを登録する。
- (BOOL) peoplePickerNavigationController: (ABPeoplePickerNavigationController *) peoplePicker shouldContinueAfterSelectingPerson: (ABRecordRef) person { // 自分で作成したビューを生成する。 View * v = [[View alloc] initWithNibName:@"View" bundle:nil]; [[peoplePicker topViewController].navigationController pushViewController:v animated:YES]; [v release]; return NO; }
topViewControllerというのが盲点でした。