我正在尝试运行我的应用程序,但每当我点击按钮时,会弹出此错误:"致命错误:在解开可选值时意外发现nil"我知道这与我的prepareForSegue函数有关,因为当我拿出它时,应用运行正常。我试图使用prepareForSegue函数从我的其他视图控制器中检索变量和其他东西。这是我的代码。
hideBannerAds是一个布尔值。
override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?) {
var FirstDest : View3 = segue.destinationViewController as View3
if hideBannerAds == true {
FirstDest.adBannerView2.removeFromSuperview()
}
}
答案 0 :(得分:0)
尝试更改
override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?)
到
override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject!)
通过查看您的代码,Sid提到您也应该尝试
if segue.identifier == "name of segue " {
var vc = segue.destinationViewController as View3
}
答案 1 :(得分:0)
我认为正确的方法是:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "your_identifier_here"
{
if let destinationVC = segue.destinationViewController as? View3{
//Change your properties here
}
}
}
但是在prepareForSegue
内部,你试图从superview中删除一个尚未加载的视图。所以你应该在View3中设置一些属性标志,以便知道是否应该加载视图,并在View3 viewDidLoad()中根据你设置的标志移除(或避免加载)你的视图。