2015-01-07 43 views
1

我有一個模型類和兩個tableView控制器。這個類的Integer值。這個類的值用prepareforsegue方法發送給其他類。但我不能prepareforsegue得到tableView的indexpath。我做錯了?快速使用prepareForSegue in 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

是的。我找到了。這個問題是可選的。 :(

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

我把感嘆號就行的結束和正確

安全的方法;

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

但是,如果表達式返回nil – mustafa

+0

是的,你會使用更精確的方法 –

11

indexPath?.row返回可選值。你不能在數組下標中使用它。你必須先解開它。這裏是例子:

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

謝謝你,這是安全的方法 –

+0

這是不是一個功能了;使用:categoryTableView.indexPathForSelectedRow –