Swift: 将数据从视图控制器传递到导航控制器

Swift: Pass data from a view controller to a navigation controller

我想将数据从一个视图控制器传递到另一个视图控制器,但我在它们之间有一个导航控制器,所以有一个 "present" 函数而不是 "performSegue"。

 private func IniciarMainAdmin(){
    let mainAdmin = UIStoryboard(name: "Main", bundle: Bundle.main)
    guard let mainAdminNVC = mainAdmin.instantiateViewController(withIdentifier: "NCMainAdmin") as? NCMainAdmin else{
        return
    }
    present(mainAdminNVC, animated: true, completion: nil)
}

我试过这段代码,但它对我不起作用:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let destViewController = segue.destination as! NCMainAdmin
        let secondViewcontroller = destViewController.viewControllers.first as! NCMenuAdmin
        secondViewcontroller.adminUserData = "This is a test"
}

备注:

谢谢!

为了触发您的代码 prepare(for,您需要创建一个从发送者 vc 到导航的 segue,因此

 private func IniciarMainAdmin(){
    let mainAdmin = UIStoryboard(name: "Main", bundle: Bundle.main)
    guard let mainAdminNVC = mainAdmin.instantiateViewController(withIdentifier: "NCMainAdmin") as? NCMainAdmin else{
        return
    }
    let first = mainAdminNVC.viewControllers.first as! NCMenuAdmin
    first.adminUserData = "This is a test"
    present(mainAdminNVC, animated: true, completion: nil)
}

self.performSegue(withIdentifier:"id",sender:nil)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let destViewController = segue.destination as! NCMainAdmin
        let secondViewcontroller = destViewController.viewControllers.first as! NCMenuAdmin
        secondViewcontroller.adminUserData = "This is a test"
}