当应用程序启动时,功能检查是否是互联网连接。如果"是"启动画面将有关它的信息传递给View Controller。但这里我有一个问题,因为SplashScreen和ViewController之间是导航控制器。它看起来像这样:
我使用此功能从Splash Screen传递数据:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let VC:ViewController = segue.destinationViewController as! ViewController
VC.connection = isConnection
// connection is a bool var in VievController
}
但是当我决定使用NavigationController时,Xcode会收到有关此错误的信息"无法转换类型' UINavigationController' (0x1835cec)到' DKTV_Reader.ViewController' (0x23888)"在这个时间线上显示我:
let VC:ViewController = segue.destinationViewController as! ViewController
在我使用NAvigationController之前,这个解决方案已经完美无缺。
答案 0 :(得分:1)
您所需的ViewController
已嵌入UINavigationController
,因此从技术上讲,它不是destinationViewController
,而是UINavigationController
。您想要的destinationViewController
是导航控制器的第一个视图控制器,您可以选择将其作为类型ViewController
let destination = (segue.destinationViewController as? UINavigationController)?.viewControllers.first as? ViewController
destination?.connection = isConnection