受け入れられた回答は、「ポップオーバーの外側を押すときにポップオーバーを非表示にする方法はありますか?」という質問には実際には答えていません。それは可能なビューを提供しますが、すべての親ビューへのハックなアクセスと、画面上にあるビューの特定などを必要とする可能性があります。質問は、「ポップオーバー ビューをモーダルにするにはどうすればよいですか?」と言い換えることができます。
ポップオーバーを閉じる完了ボタンを使用して、次のようにします。
UIViewController* vc = [[[UIViewController alloc] init] autorelease];
UIBarButtonItem* doneButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done"] style:UIBarButtonItemStyleDone target:self action:@selector(processDoneAction)] autorelease];
[vc.navigationItem setLeftBarButtonItem:doneButton];
vc.modalInPopover = YES;
//If you want full screen:
vc.modalPresentationStyle = UIModalPresentationFullScreen;
vc.wantsFullScreenLayout = YES;
UINavigationController* navC = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease];
UIView* view = create your view
vc.view = view;
UIPopoverController* pc = [[[UIPopoverController alloc] initWithContentViewController:navC] autorelease];
pc.delegate = self;
self.popoverController = pc;
次に、processDoneAction メソッドで、ポップオーバーを閉じる必要があります。その他の考慮事項は、デバイスの向きの変更を却下して再表示することですが、以前にスタックオーバーフローで回答されているため、別の演習に任せます。