首页 > 解决方案 > 如何在故事板之间传递数据

问题描述

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator){
    if UIDevice.current.orientation.isPortrait{
        let secondView: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let main = secondView.instantiateViewController(withIdentifier: "ViewController") as! ViewController
        main.modalPresentationStyle = .fullScreen
        self.present(main, animated: true, completion: nil)

    }

    if UIDevice.current.orientation.isLandscape{

        self.dismiss(animated: true, completion: nil)

    }

}

我使用这段代码在两个不同的故事板的视图控制器之间切换。如何在两个不同的故事板中的这些视图控制器之间传递数据。我试过“main.instanceData = myData before the present”好像可以,但是myData的初始值为nil,所以这行代码执行的时候会显示“Thread 1: Fatal error: Unexpectedly found nil while隐式展开可选值”

标签: iosswiftxcodeviewcontroller

解决方案


试试这个。您可以像这样直接将数据传递给 viewController:

let secondView: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let main = secondView.instantiateViewController(withIdentifier: "ViewController") as! ViewController
main.data = yourdata
main.modalPresentationStyle = .fullScreen
self.present(main, animated: true, completion: nil)

推荐阅读