我的欲望输出:
我想通过直接初始化第二个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
答案 0 :(得分:0)
问题是当你这样做时:
let svc = SecondViewController()
您正在初始化时没有放在故事板中的信息(假设您使用的是故事板)。因此,UILabel永远不会被初始化。
<强>解决方案强>
为了解决这个问题:
let svc = SecondViewController()
的
let svc = UIStoryboard(name: "YourStoryboardName", bundle: nil).instantiateViewController(withIdentifier: "YourViewIdentifier") as! SecondViewController