prepareForSegue致命错误迅速

时间:2015-03-25 15:08:09

标签: swift

我正在尝试运行我的应用程序,但每当我点击按钮时,会弹出此错误:"致命错误:在解开可选值时意外发现nil"我知道这与我的prepareForSegue函数有关,因为当我拿出它时,应用运行正常。我试图使用prepareForSegue函数从我的其他视图控制器中检索变量和其他东西。这是我的代码。

hideBannerAds是一个布尔值。

override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?) {
    var FirstDest : View3 = segue.destinationViewController as View3

      if hideBannerAds == true {
            FirstDest.adBannerView2.removeFromSuperview()
        }

    }

2 个答案:

答案 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()中根据你设置的标志移除(或避免加载)你的视图。