我正尝试以编程方式显示我的ViewControllers
中另一个故事板的其中一个。但是由于某些原因,我要显示的ViewController
的属性为nil。
那是我的错误:Unexpectedly found nil while unwrapping an Optional value
我在
SecondViewController
中遇到错误。它显示但 我的应用程序由于属性为零而崩溃。
那是我的代码:
let secondStoryBoard = UIStoryboard(name: "SecondStoryBoard", bundle: nil)
let secondViewController = secondStoryBoard.instantiateViewController(withIdentifier: "secondVC") as! SecondVC
self.navigationController?.pushViewController(secondViewController, animated: true)
那是产生错误的代码:
class SecondVC: ViewController
{
@IBOutlet weak var mapView: MKMapView!
mapView.isHidden = true // ERROR!! Unexpectedly found nil while unwrapping an Optional value
}
已解决:只需要重新连接我的
@IBOutlet
连接
答案 0 :(得分:1)
这意味着下一行要么是nil
,要么不是SecondVC
类型。
secondStoryBoard.instantiateViewController(withIdentifier: "secondVC")
我会在情节提要中验证您是否具有标识符secondVC
,并且视图控制器的类型为SecondVC
。
编辑:
根据问题中发布的OP的新代码,应将SecondVC更改为以下内容。
class SecondVC: ViewController
{
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
mapView.isHidden = true
}
}
基本上,这将等到视图加载后再访问mapView
。对于原始代码,您试图在实际加载之前访问mapView
。
编辑2:
mapView
出口似乎未正确链接到情节提要。