【发布时间】:2016-10-19 17:59:47
【问题描述】:
在我的故事板中,我有一个视图控制器,还有一个导航控制器和另一个名为 HistoryController 的视图控制器。 Navigation Controller 和 HistroyController 有关系“根视图控制器”
我的第一个视图控制器上有一个按钮,并且该按钮有一个推送到导航控制器的按钮。
我在第一个视图控制器中有这段代码来准备转场:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let viewController = segue.destination as? HistoryController {
viewController.detailItem = barcodeInt as AnyObject
}
}
我的问题是当我运行我的代码并按下我的第一个控制器中的按钮时,我收到此错误:
Could not find a navigation controller for segue 'HistorySegue'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
我的问题是,为什么会出现此错误,我该如何解决?
我已经尝试了以下
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let navVC = segue.destinationViewController as? UINavigationController{
if let historyVC = navVC.viewControllers[0] as? HistoryController{
historyVC.detailItem = barcodeInt as AnyObject
}
}
}
我也试过
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let nav = segue.destination as? UINavigationController {
if let vc = nav.visibleViewController as? HistoryController {
vc.detailItem = barcodeInt as AnyObject
}
}
}
我仍然得到同样的错误:
Could not find a navigation controller for segue 'HistorySegue'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
【问题讨论】:
-
它将帮助您展示您的故事板