单击模态视图外部时退出场景

时间:2016-03-18 12:02:53

标签: ios swift modal-view

在选择模态视图之前,尝试退出模态视图以返回上一个场景。附件如下:

Select greyed out area

最初我使用github中的一些代码退出并通过按钮返回上一个场景。

如何选择要退出的灰色部分?

1 个答案:

答案 0 :(得分:1)

将UITapGestureRecognizer添加到灰色视图并将其设置为解除视图控制器的方法。 E.g:

let tap = UITapGestureRecognizer(target: self, action: "close:")
grayView.addGestureRecognizer(tap)

例如,将它放在viewDidLoad()中。 然后在视图控制器的全局范围内执行响应tap的操作:

func close(tap: UITapGestureRecognizer) {
    self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
}

如果您希望视图的行为不同,可以尝试以下方法:

func close(tap: UITapGestureRecognizer) {
    let view = tap.view!
    UIView.animateWithDuration(0.5, animations: { () -> Void in
        view.backgroundColor = UIColor.clearColor()
        }) { (success) -> Void in
            self.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
    }
}

您可能需要尝试动画的持续时间才能使其正确。