我发现在呈现UIPopoverController时,并不会禁用呈现视图中的所有控件。具体而言,导航栏按钮(例如“后退”)仍然是可选择的。这是我认为的一个缺陷 - 它允许弹出窗口保留在屏幕上,而视图堆栈则在其后面弹出。
哦,至少这可以在演示后立即使用self.aboutPopoverController.passthroughViews = nil
进行纠正。
除非这不会禁用状态栏,状态栏通常设置为将视图的内容滚动到顶部。
最终结果是能够呈现弹出框,然后(在后台)滚动视图,使弹出窗口上的小箭头/标签不再与原始触摸点对齐。
任何人都可以对这种行为有所了解吗?它是一个功能还是一个bug?任何解决方法?
答案 0 :(得分:1)
一个简单的解决方法可能如下:
在您将UIPopoverController
设置UIScrollView
的属性scrollsToTop
显示为NO
之前。这样,当用户点击状态栏时,您的scrollView将不会滚动。
完成弹出窗口后,您可以重新启用scrollsToTop功能。
以下是UIScrollView documentation:
scrollsToTop
A Boolean value that controls whether the scroll-to-top gesture is enabled.
@property(nonatomic) BOOL scrollsToTop
Discussion
The scroll-to-top gesture is a tap on the status bar. When a user makes this gesture,
the system asks the scroll view closest to the status bar to scroll to the top.
If that scroll view has scrollsToTop set to NO, its delegate returns NO from
scrollViewShouldScrollToTop:, or the content is already at the top, nothing happens.
希望这有帮助!