Swift在indexPath中使用prepareForSegue

时间:2015-01-07 12:47:02

标签: ios uitableview swift uistoryboard uistoryboardsegue

我有一个模型类和两个tableView控制器。此类为Integer值。这个类的值用prepareforsegue方法发送给其他类。但我无法准备forsegue获取tableView indexpath。我做错了?

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    let subCategory: SubCategoryVC = segue.destinationViewController as SubCategoryVC

    let indexPath = self.categoryTableView.indexPathForSelectedRow()

    model = arrList[indexPath?.row] **//incorrect line**

    subCategory.getCatID = model.categoryID
}

2 个答案:

答案 0 :(得分:11)

indexPath?.row返回可选值。你不能在数组subacript中使用它。你必须先打包它。这是一个例子:

if let indexPath = categoryTableView.indexPathForSelectedRow() {
    // do the work here
}

答案 1 :(得分:2)

是肯定的。我找到了。这个问题是可选的。 :(

let indexPath = self.categoryTableView.indexPathForSelectedRow()**!**

我把感叹号放在行尾并纠正。

安全方法;

if let indexPath = categoryTableView.indexPathForSelectedRow() {
    // do the work here
}