modalInPopover=YES 仍然允许故事板布局上的 UIToolbar 活动

Posted

技术标签:

【中文标题】modalInPopover=YES 仍然允许故事板布局上的 UIToolbar 活动【英文标题】:modalInPopover=YES still allowing UIToolbar activity on Storyboard layout 【发布时间】:2014-03-04 19:42:26 【问题描述】:

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

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

如果我将 modalInPopover 设置为 NO,则单击除条形按钮项目之外的任何位置都会关闭弹出框;但是,点击栏按钮项目仍然有效,并且弹出框将保持可见。

没有设置通路视图。当弹出框可见时,我无法理解这些条形按钮是如何工作的。欢迎任何建议或见解。

【问题讨论】:

【参考方案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;
    

我希望这会有所帮助。

【讨论】:

是的,谢谢。我也在查看 userInteractionEnabled 。我认为这可能是一个苹果错误,但我懒得创建一个独立的案例来验证和提交。 :) @MikeM 他们可能会说“不,这是故意的,这是一个功能,bla bla”:)) 这是 ios 中的一个明显错误,即使在 iOS 8 中也是如此……我建议像我一样向 Apple 报告该错误。希望如果有足够多的人报告它,他们会修复它。

以上是关于modalInPopover=YES 仍然允许故事板布局上的 UIToolbar 活动的主要内容,如果未能解决你的问题,请参考以下文章

讲个小故事:Unix的yes命令

vsftpd配置文件详解

Pandorabox下关于vsftpd匿名访问的设置

Linux中的如何配置FTP(ProFTOD)用本地用户登录?

如何允许完整的 WPF 故事板动画

停止导航控制器swift的导航