单击NavigationBar时,UIPopoverController不会被忽略

Lyo*_*_Xu 17 iphone uipopovercontroller

单击rightBarButton时,将显示UIPopoverController.

问题是:当点击NavigationBar时,此UIPopoverController不会被忽略.

为什么?有没有办法解决它?我试图搜索,但找不到任何关于此的内容.

提前致谢.

小智 30

UIPopoverControllerpassthroughViews在呈现时似乎将导航栏添加到其数组中.我能够通过passthroughViews在呈现弹出窗口后立即重新设置为空数组来解决问题.

  • 在iOS8上,您需要在演示后不在线上设置passthroughViews,而是在另一个运行循环中.见[此链接](http://blog.karmeye.com/2014/11/20/ios8-popovers-and-passthroughviews). (3认同)
  • @Karmeye更新链接:http://karmeye.com/2014/11/20/ios8-popovers-and-passthroughviews/ (3认同)

Cat*_*lin 5

从条形按钮启动时,您只需执行此操作即可

[popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
[popoverController setPassthroughViews:nil];
Run Code Online (Sandbox Code Playgroud)


Jas*_*ien 0

状态的UIPopoverController文档:

显示时,点击弹出窗口外部会导致弹出窗口自动关闭。要允许用户与指定视图交互而不关闭弹出窗口,您可以将一个或多个视图分配给 passthroughViews 属性。在弹出窗口内点击不会自动导致弹出窗口被关闭。您的视图和视图控制器代码必须显式处理弹出窗口内的操作和事件,并根据需要调用 DismissPopoverAnimated: 方法。

passthroughViews当从栏按钮项呈现弹出窗口时,导航栏被添加为其中之一。

也许尝试设置一个空数组作为passthroughViews弹出窗口控制器上的属性。