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

时间:2015-04-10 12:17:06

标签: ios cocoa-touch swift

我发现了许多类似的问题但没有一个有帮助。当我提供名为TestVCViewController的视图控制器并对此处声明的IBOutlet UILabel执行某些操作时,我收到此错误。

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

如果我只是简单地呈现VC(即IBOutlet已声明并已连接但未被使用),则没有错误,但是,视图没有被加载,因为它看起来是黑色的,而实际上它有白色背景。

我检查了这个答案https://stackoverflow.com/a/27219058/2500457并为所有尺寸类提供了UILabel自动布局约束,但它没有帮助。

FirstVC.swift

var nextVC:TestVCViewController
required init(coder aDecoder: NSCoder) {
    nextVC = TestVCViewController()
    super.init(coder: aDecoder)
}

按钮操作:

self.nextVC =  TestVCViewController()
self.presentViewController(self.nextVC, animated: true, completion: nil)

TestVCViewController.swift:

class TestVCViewController: UIViewController {

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

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}
}

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

  

致命错误:意外地发现没有......

1 个答案:

答案 0 :(得分: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)