ViewController.modalPresentationStyle = UIModalPresentationPopover;
左のバー ボタン アクションからポップオーバー コントローラー (を使用) を提示しています。右のバー ボタン アクションでは、プッシュ セグエをトリガーしています。理想的には、ポップオーバーが表示されている場合、ポップオーバーの背後にあるビューへの相互作用は発生しないはずです。ただし、ポップオーバーが表示されている場合でも、右のバー ボタンをクリックして、ポップオーバーを閉じずに新しいビュー コントローラーをプッシュできます。
私のコードは
- (UIViewController *)menuViewController {
if (!_menuViewController) {
_menuViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"TableViewController"];
_menuViewController.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController *popoverPresentationController = _menuViewController.popoverPresentationController;
popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionUp;
}
return _menuViewController;
}
- (IBAction)leftAction:(id)sender {
self.menuViewController.popoverPresentationController.barButtonItem = sender;
[self presentViewController:self.menuViewController animated:YES completion:nil];
}
- (IBAction)rightAction:(id)sender {
[self performSegueWithIdentifier:@"PushSegue" sender:nil];
NSLog(@"Crap here");
}
ポップオーバー プレゼンテーション コントローラーpassthroughViews
を nill と空の配列に設定しようとしましたが、結果はありません
ポップオーバーが表示されているときにすべての相互作用を無効にする方法は?
アップデート :
これは、ポップオーバーが表示されていて、ナビゲーション バーに何らかの操作がある場合に発生します。つまり、ポップオーバーが表示されている場合でも、ナビゲーション バーの操作を行います。これを無効にする方法はありますか?