4
私はnavigationControllerスタックを持つUIPopoverを持っています。そのスタックの2番目のビューから、ABPeoplePickerNavigationControllerをモーダルでポップオーバーに表示します。私はこれが働いているが、私はmodalViewControllerを却下すると、UIPooverの元のナビゲーションコントローラがポップオーバーから欠落しています。この作業を適切に行う方法はありますか?以下のコード:UIPopover内にABPeoplePickerNavigationControllerを表示
(IBAction)showPicker:(id)sender {
ABPeoplePickerNavigationController *picker =
[[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;
picker.modalPresentationStyle = UIModalPresentationCurrentContext;
picker.modalInPopover = YES;
[self presentModalViewController:picker animated:YES];
// self is the 2nd viewController in the original navigation stack
[picker release];
}
(void)peoplePickerNavigationControllerDidCancel:
(ABPeoplePickerNavigationController *)peoplePicker {
[self dismissModalViewControllerAnimated:YES];
}
と動作するようにこれを得ることに全く運がなかったです - ピッカーは常にポップオーバーをオーバーレイする新しいビューで開きます。あなたがそれを上回らないようにするためにあなたがした他の魔法がありますか?そうであれば、それをコメントとして追加したり、上記の解決策を編集したりできますか? –
さて、私はついにそれを働かせました。ピッカーを表示しようとしていたビューのpopoverContentSizeが小さすぎました。私はpickerにcontentSizeForViewInPopoverプロパティを要求しました。これはフルハイト320幅で、popoverContentSizeをこの数値に設定しました。 –