PresentationViewController

PresentationViewController

我有一个自定义的PresentationViewController,它具有半屏尺寸高度和全屏尺寸宽度。

ios - 关闭PresentationViewController-LMLPHP

我想按PresentationViewController外部将其关闭。

我尝试在ViewController下添加一个按钮,但是从未调用此按钮的动作。

我还尝试在PresentationViewController中添加一个具有等于view.frame的帧的按钮,并为touchUpOutside发送一个动作,此按钮的动作也不会被调用。

那么如何消除这个PresentationViewController

最佳答案

将手势识别器添加到视图的窗口

对于Swift3

var recognizer = UITapGestureRecognizer(target: self, action: #selector(yourViewController.handleTap(_:)))
recognizer.numberOfTapsRequired = 1
recognizer.cancelsTouchesInView = false
self.view.window?.addGestureRecognizer(recognizer)

然后像这样调用函数
 func handleTap(_ sender: UITapGestureRecognizer) {
if sender.state == .ended {
    var location: CGPoint = sender.location(in: nil)
    if !self.view.point(inside: self.view.convertPoint(location, from: self.view.window), withEvent: nil) {
        self.view.window?.removeGestureRecognizer(sender)
        self.dismiss(animated: true, completion: nil)
    }
}
}

对于 objective-c ,您可以从here获取参考

10-08 02:28