web-dev-qa-db-fra.com

Afficher et fermer un contrôleur de vue modale dans Swift

Lorsque vous appuyez sur un bouton, je souhaite séparer deux contrôleurs de vue en utilisant un style de transition modale CoverVertical, puis l’écarter. Il y a beaucoup d’informations sur la façon de le faire dans l’objectif C, mais ne trouve aucune bonne information dans Swift. Jusqu'ici j'ai fait ceci mais je ne pense pas que c'est correct:

 @IBAction func insertStatus(sender: UIButton) {

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

    }

Le rejet que j'utilise comme si ne fonctionne pas non plus:

@IBAction func statusSaved(sender: UIBarButtonItem) {

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

Swift 3:

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

dismiss(animated: true, completion: nil)

Swift 2.2:

self.presentViewController(true, completion: nil)

Masquer/rejeter un contrôleur de vue:

self.dismissViewControllerAnimated(true, completion: nil)
23
Cesare

Faire pour supprimer View Controller dans Swift 3.0

self.dismiss(animated: true, completion: {})
8
freddieoh

Fermer le contrôleur de vue dans Swift 4 :

dismiss(animated: true, completion: nil)
0
craft

C'est assez facile:

pour rejeter une vue modale avec Swift 3.0: Utilisez rejeter Api comme ci-dessous:

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

Pour le présent:

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

Pour plus de détails ici vous allez:

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

0
Aks

Vous pouvez utiliser les méthodes presentViewController:animated:completion: et dismissViewControllerAnimated:completion: à partir de UIViewController. Voir docs ici

0
Marius Fanu