ios - 通过不同故事板、Swift、iOS、Xcode 上的 segue 和 Navigation 将数据从一个控制器传递到另一个控制器
问题描述
我试图通过 segue 将一些数据从一个故事板传递到另一个故事板,第二个故事板 VC 嵌入在导航控制器中,我找不到在代码中添加导航控制器的地方,当我收到错误说 segue 链接不存在。
这是我的代码:-
准备。
let storyboard = UIStoryboard(name: "ProdProj", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ProjectsListVC") as? ProjectsListVC
vc!.projectsSentT = ProjecctProd
vc!.logedInAsT = "Prod"
和我的表演。
self.performSegue(withIdentifier: "toProjectsProd", sender: nil)
如果我添加导航以执行 segue,我会收到一条错误消息,指出没有具有该名称的 segue。如果我不添加导航,它会说没有名为 ProjectsListVC 的视图控制器
截图。 segue的链接和名称
解决方案
您必须考虑下一个故事板中的导航控制器,因此您的 prepare(for: sender:) 函数应如下所示:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = (segue.destination as! UINavigationController).topViewController as! DestinationViewController
vc!.projectsSentT = ProjecctProd
vc!.logedInAsT = "Prod"
}
其中 DestinationViewController 是嵌入在 navigationController 中的第二个视图控制器的名称。并且直接使用 segue.destination 和 viewController 的实例。
推荐阅读
- javascript - geolocation.getCurrentPosition 问题
- sql - Teradata SQL - 创建临时表
- c++ - 在 Windows 中使用 Tesseract 4
- python - Google App Engine - 任务队列 - 如果满足条件,如何运行任务
- postgresql - 来自同一行的 2 个值的总和
- javascript - springboot中的Javascript fetch和@RequestAttribute
- python - 如何通过子进程向python发送多个参数
- razor - 如何发送参数和上传文件到一个动作
- php - 如何在magento中通过url查找模板?
- r - 在字符串中使用 $ grep