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; 
    } 
} 

我希望这会有所帮助。

+1

耶谢谢。我也在查看userInteractionEnabled。我认为这可能是一个苹果错误,但我懒得创建一个独立的案例来验证和提交。 :) –

+0

@MikeM他们可能会说“这是故意做的,这是一个功能,bla bla”:)) –

+0

这是iOS中的一个明显的错误,即使在iOS 8中也是如此...我建议报告错误像我这样做到苹果。希望如果有足够的人报告,他们会解决它。 – jjxtra