直接初始化viewController

时间:2018-03-27 09:37:52

标签: ios swift initialization viewcontroller

我的欲望输出:

我想通过直接初始化第二个viewController来传递数据

在我的第一个vc中:

class MainViewController : UIViewController {

    @IBAction func nextQuestion(_ sender: UIButton ) {

        //enter code here
         questionIndex += 1
         let currentQuestion = exam1[questionIndex]
         questionLabel.text = currentQuestion.question
        //enter code here
        let svc = SecondViewController()
        svc.label.text = "some data from mainvc"  
}

在我的secondvc中:

class SecondViewController : UIViewController {
    @IBOutlet weak var label : UILabel! 
}

//当我编写模拟器工作的代码时,没有显示任何错误。但是当涉及到向svc应用程序崩溃发送数据并给出错误时#34;在打开可选的"时找到了nil

1 个答案:

答案 0 :(得分:0)

问题是当你这样做时:

let svc = SecondViewController()

您正在初始化时没有放在故事板中的信息(假设您使用的是故事板)。因此,UILabel永远不会被初始化。

<强>解决方案

为了解决这个问题:

let svc = SecondViewController()

let svc = UIStoryboard(name: "YourStoryboardName", bundle: nil).instantiateViewController(withIdentifier: "YourViewIdentifier") as! SecondViewController