在 Swift 中显示和关闭模态视图控制器

Display and dismiss a modal view controller in Swift

当按下按钮时,我想通过使用模态过渡样式 CoverVertical 在两个视图控制器之间切换,然后关闭它。在 objective C 中有很多关于如何执行此操作的信息,但在 Swift 中找不到任何好的信息。到目前为止,我已经这样做了,但我认为它不正确:

 @IBAction func insertStatus(sender: UIButton) {

         var StatusVC: StatusViewController = StatusViewController()
    var modalStyle: UIModalTransitionStyle = UIModalTransitionStyle.CoverVertical
    StatusVC.modalTransitionStyle = modalStyle
    self.presentViewController(StatusVC, animated: true, completion: nil)

    }

我这样使用的 Dismiss 也不起作用:

@IBAction func statusSaved(sender: UIBarButtonItem) {

        self.dismissViewControllerAnimated(false, completion: { () -> Void in
            let usersVC: UsersViewController = self.storyboard?.instantiateViewControllerWithIdentifier("UsersViewController") as UsersViewController
       })
    }

您可以使用 UIViewController 中的 presentViewController:animated:completion:dismissViewControllerAnimated:completion: 方法。请参阅文档 here

Swift 5:

present(UIViewController(), animated: true, completion: nil)

dismiss(animated: true, completion: nil)

Swift 2.2:

self.presentViewController(true, completion: nil)

Hide/dismiss 一个视图控制器:

self.dismissViewControllerAnimated(true, completion: nil)

在 Swift 3.0

中关闭视图控制器
self.dismiss(animated: true, completion: {})

很简单:

使用 swift 3.0 关闭模态视图: 使用 dismiss Api 如下所示:

> @IBAction func dismissClick(_ sender: Any) {
>         dismiss(animated: true, completion: nil)
>         
>     }

目前:

> @IBAction func dismissClick(_ sender: Any) {
> present(UIViewController(), animated: true, completion: nil)
>         
>     }

点击这里了解更多详情:

https://developer.apple.com/documentation/uikit/uiviewcontroller#//apple_ref/doc/uid/TP40006926-CH3-SW96

关闭视图控制器 Swift 4:

dismiss(animated: true, completion: nil)