【发布时间】:2016-08-10 01:08:39
【问题描述】:
我正在使用 Swift 进行开发。
下面的图片是我的故事板。
有一个主视图。 主视图会将视图更改为扫描视图,并在按下 Scan (右栏按钮项)。
StoryBoard Segue的标识符是ScanView
我使用以下代码将数据从 Main 传递到 Scan
当按下扫描(右栏按钮项目)。
self.performSegueWithIdentifier("ScanView", sender: self)
并将数据传递给下一个视图
//prepare jumping to next page
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier=="ScanView"){
let desViewController = segue.destinationViewController as! ScanViewController
desViewController.myCenteralManager = myCenteralManager
}
}
它会在let desViewController = segue.destinationViewController as! ScanViewController 崩溃并显示如下错误:
Could not cast value of type 'UINavigationController' (0x3960e0a8) to 'BLEConnect.ViewController' (0x5514c).
有人可以教我如何解决这个问题吗?提前致谢。
【问题讨论】:
-
错误信息很清楚;您试图强制将 UINaigationController 强制转换为 ScanViewController。您可以将主视图控制器嵌入导航控制器而不是扫描视图中,否则您需要从导航控制器的 ViewControllers 属性访问扫描视图控制器。我也不喜欢从扫描视图回到主视图的那种外观。您应该使用 unwind segue,或者如果您在导航控制器中嵌入主视图控制器,则默认情况下后退按钮将在那里
标签: ios swift uiviewcontroller uinavigationcontroller