modalInPopover = YES仍然允许在Storyboard布局上使用UIToolbar活动

时间:2014-03-04 19:42:27

标签: ios objective-c storyboard uipopovercontroller uitoolbar

我有一个UISplitViewController。在详细信息面板中,我底部有一个UIToolbar。其中一个BarButtonItems通过performSegue方法启动UIPopoverController。

popover的子视图控制器在其modalInPopover方法中返回YES。在弹出窗口外部敲击不会关闭它,但是点击UIToolbar中的任何条形按钮项目仍然执行该按钮项目的功能,即使弹出窗口应该是“模态”。

如果我为modalInPopover设置NO,则点击任意位置除了条形按钮项目将关闭弹出窗口;但是,点击栏按钮项仍然有效,弹出窗口仍然可见。

没有设置passthru视图。当弹出窗口可见时,我无法理解这些条形按钮是如何工作的。任何建议或见解都会受到欢迎。

1 个答案:

答案 0 :(得分:1)

我一直有同样的问题,实际上我找不到干净的方法。我建议您在prepareForSegue:sender:使用UIView userInteractionEnabled的此属性禁用工具栏的用户互动。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
    {
        // disable user interaction on toolbar here
        self.navigationController.navigationBar.userInteractionEnabled = NO;
    }
}

我希望这会有所帮助。