我正在ViewController.modalPresentationStyle = UIModalPresentationPopover;
从左栏按钮操作中展示一个弹出控制器(带有)。在右栏按钮操作中,我触发了一个 push segue。理想情况下,当 popover 可见时,不应发生与 popover 后面的视图的交互。但是,即使弹出框可见,我也可以单击右栏按钮并推动新的视图控制器,而不会关闭弹出框。
我的代码是
- (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");
}
我尝试将 popover 演示控制器设置passthroughViews
为 nill 和空数组,但没有结果
弹出窗口可见时如何禁用所有交互?
更新 :
如果弹出框可见并且我们在导航栏中有任何交互,则会发生这种情况。简而言之,即使弹出框可见,它也会与导航栏进行交互。有什么办法可以禁用它吗?