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 活动的主要内容,如果未能解决你的问题,请参考以下文章