使用导航控制器 Swift 5

问题描述

我希望你会很棒,重点是我想在 SeondViewControllerHomeViewController 之间传递数据,并且它们之间存在导航控制器,但不幸的是,我不能。我尝试使用当前调用函数,它可以工作,但模拟器卡在 SecondView 中,这是我的视图照片:

estoryboard

我将数据传递给 secondViewControllerhomeViewcontroller 按钮代码是:

   @IBAction func nextStep(_ sender: Any) {
    
    let thirdVC = HomeViewController()
    thirdVC.cid = cityId
      // present(thirdVC,animated: true,completion: nil)
    }

另外,我指向它的 homeViewController 代码在这里:

    class HomeViewController: UIViewController {

     var txt : String = "  "
     var cid : String = "  "
    
     override func viewDidLoad() {
         super.viewDidLoad()
         // Do any additional setup after loading the view.
         print("\n iiiiiiiiiid is \(cid) ")
    }

感谢您的关注。

解决方法

如果您使用的是 segue,则在 storyboard 中添加“segue_identifier”并在 secondviewcontroller 中添加:

 override func prepare(for segue: UIStoryboardSegue,sender: Any?) {
             if segue.identifier == "segue_ identifier" {
                let mainTab = segue.destination as! tabBarController
                let nav = mainTab.viewControllers[0] as! UINavigationController
                let vc = nav.viewControllers.first as! HomeViewController
                vc.cid = cityId
            }
        }

因为你的segue目的地是UINavigationController,所以你需要像这样发送数据到视图控制器

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...