我有一个UITableView,我已设置为在用户选择一行时转到另一个VC(该表只包含一个数组)。我想传递所选项目的行索引。我正在使用didSelectRowAtIndexPath
将一个名为selectedCellIndex
的变量设置为行索引。但是,因为我还设置了tableView设置为转到下一个VC prepareForSegue
,所以didSelectRowAtIndexPath
会关闭(或大约在同一时间)。因此,第一次从列表中选择一个项目时,发送的值为nil,之后我总是得到所选行的前一个值。关于如何确保在应用程序转换到下一个segue之前设置变量而没有暂停的任何想法?
这是我的代码:
var selectedCellIndex:Int!
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
var indexPath = tableView.indexPathForSelectedRow() as NSIndexPath?
selectedCellIndex = indexPath?.row as Int?
}
//SEGUE
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "signature" {
let vc = segue.destinationViewController as SignatureViewController
vc.index = "\(selectedCellIndex)"
}
}
由于
答案 0 :(得分:0)
您可以使用indexPathForSelectedRow
方法直接从表格视图中获取所选索引路径。无需仅实现didSelectRowAtIndexPath
来存储所选索引。
prepareForSegue:
方法是您应该设置/访问转换所必需的变量的唯一方法。