我试图通过 segue 将一些数据从一个 Storyboard传递到另一个 Storyboard,第二个 Storyboard VC 嵌入在导航 Controller 中,我找不到在代码中添加导航 Controller 的地方,当我这样做时,我收到一条错误消息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 的 View Controller
最佳答案
您必须考虑下一个 Storyboard中的导航 Controller ,因此您的 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 中的第二个 View Controller 的名称。并直接使用 segue.destination 和 viewController 的实例。
关于ios - 在不同的 Storyboard、Swift、iOS、Xcode 上通过 segue 和 Navigation 将数据从一个 Controller 传递到另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59249184/