Swift 继续不工作

Swift Segue not working

我有一个制作 swift 应用程序的学校项目。我是 swift 的新手,正在尝试通过 segue 将数据从一个表视图传递到另一个视图。 这是项目文件 Download Here.

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "PopularDetails" {
            let detailsViewController = segue.destinationViewController as DetailsViewController
            let selectedIndexPath = popularTableView.indexPathForSelectedRow()
            detailsViewController.shots = shots[selectedIndexPath.row]
        }
    }


}

.indexPathForSelectedRow() returns 可选。在访问它的属性之前,你必须打开它。尝试:

let selectedIndexPath = popularTableView.indexPathForSelectedRow()
detailsViewController.shots = shots[selectedIndexPath!.row]

(见感叹号)

尽管@gutenmorgenuhu 是正确的,但最好使用:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "PopularDetails" {
        if let detailsViewController = segue.destinationViewController as? DetailsViewController {
            if let selectedIndexPath = popularTableView.indexPathForSelectedRow() {
                detailsViewController.shots = shots[selectedIndexPath.row]
            }
        }
    }
}