在不同情节提要,Swift,iOS,Xcode

时间:2019-12-09 12:44:06

标签: ios swift segue

我正在尝试通过segue将一些数据从一个情节提要传递到另一个情节提要,第二个情节提要VC嵌入在导航控制器中,我找不到在代码中添加nav控制器的位置,当我得到一个错误提示时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

的视图控制器。

屏幕截图。 The link and name of segue

Name of the VC going to

2 个答案:

答案 0 :(得分:3)

您必须考虑下一个情节提要中的导航控制器,因此您的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是导航控制器中嵌入的第二个视图控制器的名称。并直接使用segue.destination和viewController的实例。

答案 1 :(得分:0)

首先,在第一个情节提要板上创建情节提要参考,如下所示: Attributes inspector

接下来,创建对引用的segue: segue

要将数据发送到新控制器,请使用准备方法https://developer.apple.com/documentation/uikit/uiviewcontroller/1621490-prepare