致命错误:在解包可选值时意外发现nil(EXC_BAD_INSTRUCTION)

iph*_*oid 1 cocoa-touch ios swift

我发现了许多类似的问题但没有一个有帮助.当我提出一个名为View Controller TestVCViewControllerIBOutlet UILabel在此处声明的事情时,我得到了这个错误.

我已检查IBOutlet连接并已连接.

如果我只是呈现VC(即IBOutlet声明并连接但未使用),则没有错误,但是,视图尚未加载,因为它显示为黑色,而实际上它具有白色背景.

我检查了这个答案/sf/answers/1905334091/并给出了UILabel所有大小类的自动布局限制,但它没有帮助.

FirstVC.swift:

var nextVC:TestVCViewController
required init(coder aDecoder: NSCoder) {
    nextVC = TestVCViewController()
    super.init(coder: aDecoder)
}
Run Code Online (Sandbox Code Playgroud)

按钮动作:

self.nextVC =  TestVCViewController()
self.presentViewController(self.nextVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

TestVCViewController.swift:

class TestVCViewController: UIViewController {

@IBOutlet  var screwManLABEL: UILabel!
override func viewDidLoad() {
    super.viewDidLoad()
    screwManLABEL.text = "heyyyy"
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}
}
Run Code Online (Sandbox Code Playgroud)

我得到了异常,screwManLABEL.text = "heyyyy"调试器显示了

致命错误:意外发现零......

dua*_*uan 5

更改初始化的方式 TestVCViewController

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("your_VC_ID") as! TestVCViewController
self.presentViewController(vc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)