web-dev-qa-db-fra.com

DestinationViewController Segue et UINavigationController swift

J'ai donc une méthode prepareForSegue comme ceci:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "fromEventTableToAddEvent" {

        let addEventViewController: AddEventViewController = segue.destinationViewController as! AddEventViewController

        addEventViewController.newTagArray = newTagArray

    }
}

Cependant, à l'exécution, l'application se bloque et les journaux crachent ce message:

Impossible de transtyper la valeur de type 'UINavigationController'

L'erreur vient du fait que l'addEventController est incorporé dans un contrôleur de navigation, mais je ne sais pas comment je configurerais la séquence de sorte que la destinationViewController soit définie sur le NavigationController, mais aussi me permettre de passer des variables de la méthode prepareForSegue à l'addEventController

Alors, comment pourrais-je faire cela en utilisant Swift?

J'apprécie énormément votre aide et le temps que vous pouvez offrir en réponse. Ça aide beaucoup

28
YichenBman

Il vous suffit d'accéder au topViewController du contrôleur de navigation, qui sera AddEventViewController. Voici le code:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "fromEventTableToAddEvent" {

        let nav = segue.destinationViewController as! UINavigationController
        let addEventViewController = nav.topViewController as! AddEventViewController

        addEventViewController.newTagArray = newTagArray

    }
}
104
rdelmar