如何使用swift中的按钮来解除弹出窗口

时间:2015-06-19 18:10:12

标签: ios swift popover dismiss

我的iPad应用程序有几个数据收集弹出窗口,我希望能够通过触摸它来禁用弹出窗口的解除,然后我将使用一个按钮来退出用户自行决定的弹出窗口。

该应用程序看起来很棒,弹出窗口工作正常,我在其中有一个按钮,很好地退出。只有我找不到一种在Swift中禁用解雇的方法,很多关于obj-c的帖子但在Swift中没什么。

这是否意味着功能不再可用?

我非常感谢对我的挫败感的任何帮助。

1 个答案:

答案 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?