如何解决如何通过菜单在屏幕之间切换?出现大错误斯威夫特
我有一个导航控制器和几个视图控制器。当我单击 Stocks View Controller 中的表格单元格时,我打开了 Stock Chart View Controller。其中我有 3 个按钮“图表”、“摘要”、“新闻”。我想点击“Summary”移动到 Stock Summary View Controller,但是出现了几十行错误。如何在这样的菜单中实现转换?
如何在股票图表视图控制器和股票摘要视图控制器中单击“返回”以返回到股票视图控制器?
从股票图表视图控制器切换到股票摘要视图控制器的代码:
@IBAction func onSummaryButtonTapped(_ sender: Any) {
let storyboard = UIStoryboard(name: "Main",bundle: .main)
let viewController = storyboard.instantiateViewController(identifier: "StockSummaryViewController") as! StockSummaryViewController
navigationController?.pushViewController(viewController,animated: true)
}
故事板: enter image description here
解决方法
您的应用:
NavigationVC
> StocksVC
(点击单元格)➡ StockChartVC
> StockSummaryVC
> 等等
➡在这里很重要,你如何从StocksVC
导航到StockChartVC
?你是推送StockChartVC
还是模态呈现?由于您以编程方式进行转场,因此无法在图像中看到。
我可以提供以下信息来帮助您:
-
push-style
导航自动包含/添加用于向后导航的控件,因为它将所有 ViewController 添加到其navigation stack
;所有 ViewController 都将嵌入到同一个NavigationController
-
在呈现场景
modally
的情况下,这些 ViewController 必须拥有它们的自己的NavigationController
。因此,您的StockChartVC
必须嵌入到它自己的NavigationController
我相信您会从 push-style
到 StocksVC
执行 StockChartVC
转接,并且还从 StockChartVC
推到 StockSummaryVC
;在这种情况下,应该没有问题。此外(如我所写),所有 VC 都将添加用于向后导航的控件。一切都会好起来的!
因此请注意您的转场方式,并据此实施正确的导航。