在Xcode 8和Swift 3.0中删除覆盖后准备segue崩溃

时间:2016-09-16 17:52:26

标签: ios swift xcode

从Xcode 8 beta 5更新到Xcode 8最终版本后,从我所有的segue方法准备中删除覆盖后,所有这些都在运行时崩溃。

以下是我的代码示例:

这是按钮的操作方法:

{r test, results = "asis"}

stargazer::stargazer(attitude,
                 type = "html",
                 digits = 2,
                 summary.stat = c("mean","sd","median","min", "max"))

这是对segue方法的准备。

@IBAction func actionRequested(_ sender: AnyObject) {

    if sender as! UIButton == shoppingButton
    {
        print("executed from inside of actionRequested Method")
        performSegue(withIdentifier: "toShopping", sender: self)
    }
}

这是错误:

// MARK: - Navigation
func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
    print("executed from inside of prepare For segue method")
    if segue.identifier == "toShopping"
    {
        let newHomeViewController = segue.destination as!  HomesTableViewController
        newHomeViewController.profile = self.profile
    }

}

请注意,在删除覆盖之前,我对segue方法的所有准备都在工作,现在我在所有这些方法中都得到了相同的错误。任何人都可以指出我正确的方向来解决这个问题吗?

提前谢谢你。

2 个答案:

答案 0 :(得分:2)

请勿删除override,而是隐藏问题而不是修复问题。准备segue方法的签名在Xcode 8 beta 6中发生了变化。

现在应该是:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

答案 1 :(得分:0)

我终于解决了重新安装Xcode并使用Dan提出的方法签名的问题。

感谢您的回复。