以下のように、すでにプッシュされているViewControllerにViewControllerをプッシュしようとしています。しかし、どういうわけか、をプッシュしようとするとnewPersonViewController
、この新しいコントローラーはスタックにプッシュされません。階層に属していない新しいコントローラーを追加しようとしているとXcodeが文句を言っている理由がわかりません。ABPeoplePickerViewController
間違って提示しましたか?newPersonViewController
これが、がスタックにプッシュされなかった理由ですか?
コンソールからのメッセージ:
警告:ビューがウィンドウ階層にないものを提示しようとしています!
コード:
- (void)addPerson
{
ABNewPersonViewController *newPersonVC = [[ABNewPersonViewController alloc] init];
newPersonVC.newPersonViewDelegate = self;
UINavigationController *uiNav = [[UINavigationController alloc] initWithRootViewController:newPersonVC];
[self presentViewController:uiNav animated:YES completion:nil];
}
- (void)showPeoplePicker
{
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
[self presentViewController:picker animated:YES completion:nil];
[picker.topViewController setEditing:YES];
picker.topViewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addPerson)];
picker.topViewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(peoplePickerCancel)];
}