在导航栏中使用弹出窗口时仍然启用后退按钮

时间:2014-06-18 17:26:26

标签: ios objective-c popover navigationbar

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

右键正确显示弹出框,按下视图中的任意位置即可关闭弹出窗口。

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

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

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

这是预期还是我做错了?

谢谢!

1 个答案:

答案 0 :(得分:3)

UIPopoverControllerUINavigationBar显示UIToolBar时,默认情况下会将栏添加到passthroughViews属性中。

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