DestinationViewController Segue和UINavigationController swift

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

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "fromEventTableToAddEvent" { let addEventViewController: AddEventViewController = segue.destinationViewController as! AddEventViewController addEventViewController.newTagArray = newTagArray } } 

但是,在运行时,应用程序崩溃并且logging了这条消息:

无法投射“UINavigationController”types的值

出现这个错误是因为addEventControllerembedded到导航控制器中,但是我不知道如何设置segue,以便将destinationViewController设置为NavigationController,还允许将prepareForSegue方法中的variables传递给addEventController

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

我非常感谢你的帮助和时间,你可以提供回应。 它帮助很多

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