ViewController没有名为tableview的成员错误

时间:2015-04-10 06:24:33

标签: uitableview swift

我想将单击行的indexPath.row传递给另一个控制器,所以我使用了下一个代码,但它打印出错误,该视图控制器没有名为tableview的成员。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "body"{
        var secondViewController : SecondViewController = segue.destinationViewController as! SecondViewController

        var indexPath = self.tableView.indexPathForSelectedRow() //get index of data for selected row

        secondViewController.data = indexPath.row // get data by index and pass it to second view controller

    }
}

我可以修复此错误吗?

1 个答案:

答案 0 :(得分:1)

我认为tableView并不存在。它不是tableView函数。

您必须为此tableView创建一个强大的出口:

@IBOutlet var tableView: UITableView!

并且不要忘记将其与您的tableView

联系起来

并从方法TableView中删除覆盖。

修改

对于你的另一个问题,你可以按照他的建议跟随Kirsteins:

tableView.indexPathForSelectedRow方法返回一个可选的NSIndexPath。你必须打开它。然而,最好的方法是使用if let安全展开来处理这种情况,其中没有选定的行且indexPathnil。类似的东西:

if let indexPath = tableView.indexPathForSelectedRow() {
    secondViewController.tempString = indexPath.row.description
} else {
    // handle the situation where the is no selected row
}

并在您的SecondViewController中声明一个变量,该变量将保存此值。

检查THIS以获取更多信息。