DestinationViewController Segue和UINavigationController swift [英] DestinationViewController Segue and UINavigationController swift
问题描述
所以我有这样的prepareForSegue方法:
覆盖func prepareForSegue(segue:UIStoryboardSegue,sender:AnyObject?){
if segue.identifier ==fromEventTableToAddEvent{
让addEventViewController:AddEventViewController = segue.destinationViewController as! AddEventViewController
addEventViewController.newTagArray = newTagArray
}
}
但是,在运行时,应用程序崩溃并记录此消息:
无法转换类型的值' UINavigationController'
错误的发生是因为addEventController嵌入在导航控制器中,但是我不知道如何设置segue以便将destinationViewController设置为NavigationController,但也允许我将prepareForSegue方法中的变量传递给addEventController
那么我将如何使用Swift执行此操作? / p>
非常感谢您提供的帮助和时间作为回应。它有很多帮助
您只需要访问导航控制器的topViewController,它将是AddEventViewController。下面是代码:
覆盖func prepareForSegue(segue:UIStoryboardSegue,sender:AnyObject?){
if segue。 identifier ==fromEventTableToAddEvent{
让nav = segue.destinationViewController为! UINavigationController
让addEventViewController = nav.topViewController为! AddEventViewController
addEventViewController.newTagArray = newTagArray
}
}
So I have a prepareForSegue method like this:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "fromEventTableToAddEvent" {
let addEventViewController: AddEventViewController = segue.destinationViewController as! AddEventViewController
addEventViewController.newTagArray = newTagArray
}
}
However, at runtime the app crashes and logs spit out this message:
Could not cast value of type 'UINavigationController'
The error comes because the addEventController is embedded in a navigation controller, however I'm not sure how I would set up the segue so that the destinationViewController is set to the NavigationController, but also allow me to pass variables in the prepareForSegue method to the addEventController
So how would I do this using Swift?
I extremely appreciate your help and time you may offer in response. It helps alot
You only need to access the navigation controller's topViewController, which will be the AddEventViewController. Here is the 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
}
}
这篇关于DestinationViewController Segue和UINavigationController swift的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!