DestinationViewController Segue和UINavigationController swift

Yic*_*man 29 ios segue swift

所以我有一个这样的prepareForSegue方法:

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

        let addEventViewController: AddEventViewController = segue.destinationViewController as! AddEventViewController

        addEventViewController.newTagArray = newTagArray

    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在运行时,应用程序崩溃并记录此消息:

无法转换'UINavigationController'类型的值

之所以出现错误,是因为addEventController嵌入在导航控制器中,但我不知道如何设置segue以便将destinationViewController设置为NavigationController,还允许我将prepareForSegue方法中的变量传递给addEventController

那我怎么用Swift呢?

我非常感谢您提供的帮助和时间作为回应.它有很多帮助

rde*_*mar 106

您只需要访问导航控制器的topViewController,它将是AddEventViewController.这是代码:

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

    }
}
Run Code Online (Sandbox Code Playgroud)