modalInPopover = YES仍然允许Storyboard布局上的UIToolbar活动
问题描述:
我有一个UISplitViewController。在细节面板中,底部有一个UIToolbar。其中一个BarButtonItems通过performSegue方法启动UIPopoverController。modalInPopover = YES仍然允许Storyboard布局上的UIToolbar活动
弹出窗口的子视图控制器在其modalInPopover方法中返回YES。在弹出窗口之外的点击不会关闭它,但是点击UIToolbar中的任何酒吧按钮项目仍会执行该酒吧按钮项目的功能,即使弹出窗口应该是“模态”的。
如果我为modalInPopover设置NO,然后单击任何地方除了酒吧按钮项目将关闭弹出;但是,点击条形按钮项目仍然可以工作,并且弹出窗口仍然可见。
没有passthru意见集。我无法理解弹出窗口可见时这些酒吧按钮是如何工作的。任何建议或见解都会受到欢迎。
答
我一直有完全相同的问题,真的我找不到一个干净的方式做到这一点。我可以建议的是在你的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中也是如此...我建议报告错误像我这样做到苹果。希望如果有足够的人报告,他们会解决它。 – jjxtra