DestinationViewController Segue和UINavigationController swift

时间:2015-02-18 00:08:00

标签: ios swift segue

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

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

        let addEventViewController: AddEventViewController = segue.destinationViewController as! AddEventViewController

        addEventViewController.newTagArray = newTagArray

    }
}

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

  

无法转换“UINavigationController”类型的值

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

那么我如何使用Swift做到这一点?

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

1 个答案:

答案 0 :(得分:104)

您只需要访问导航控制器的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

    }
}
相关问题