我的iPad应用程序有几个数据收集弹出窗口,我希望能够通过触摸它来禁用弹出窗口的解除,然后我将使用一个按钮来退出用户自行决定的弹出窗口。
该应用程序看起来很棒,弹出窗口工作正常,我在其中有一个按钮,很好地退出。只有我找不到一种在Swift中禁用解雇的方法,很多关于obj-c的帖子但在Swift中没什么。
这是否意味着功能不再可用?
我非常感谢对我的挫败感的任何帮助。
答案 0 :(得分:2)
只需将视图控制器的modalInPopover
设置为true
,将popover的passthroughViews
设置为nil
。但是你必须使用延迟性能来执行后者,否则它将无效。只需要一点延迟就可以了。例如:
let vc = UIViewController()
vc.modalPresentationStyle = .Popover
self.presentViewController(vc, animated: true, completion: nil)
if let pop = vc.popoverPresentationController {
vc.modalInPopover = true
delay(0.1) {
pop.passthroughViews = nil
}
}
对于delay
功能,请参阅dispatch_after - GCD in swift?。