【问题标题】:Back button still enabled when using popover in navigation bar在导航栏中使用弹出框时,后退按钮仍然启用
【发布时间】:2014-06-18 17:26:25
【问题描述】:

我有一个带有主从视图的导航控制器。详细视图的导航栏在左侧显示后退按钮,我使用 UIBarButtonItem 和右侧的 UIPopoverController 来获得附加功能。

右键正确显示弹出框,按视图中的任何位置都会关闭弹出框。

我的问题是,当弹出框处于活动状态时,导航栏后退按钮也仍然处于活动状态。因此,当用户尝试关闭弹出框并按下栏后退按钮时,导航控制器会展开回主视图并且弹出框仍然可见!

我尝试将弹出框放在视图内的 UIButton 上而不是导航栏上,并且行为符合预期:如果您尝试通过按任意位置关闭弹出框,即使是在导航返回按钮上,然后关闭弹出框(而不是调用后退按钮并展开到主视图)

在任何一种情况下,我都使用故事板通过将控件从按钮(UIBarButton 或 UIButton)拖动到目标视图控制器来创建 Popover。

这是预期的还是我做错了什么?

谢谢!

【问题讨论】:

    标签: ios objective-c popover navigationbar


    【解决方案1】:

    UINavigationBarUIToolBar 显示 UIPopoverController 时,默认情况下会将 Bar 添加到其 passthroughViews 属性中。

    UIPopoverController 的加载/出现时清除此属性应该可以解决您的问题。

    【讨论】:

    • 是的,有效!非常感谢!我在[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 之后添加了popover.passthroughViews = nil;
    • iOS 8 似乎打破了这一点。有什么新见解吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    相关资源
    最近更新 更多