【发布时间】:2014-09-11 23:18:50
【问题描述】:
我有一个 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)"
}
}
谢谢
【问题讨论】:
标签: ios cocoa-touch uitableview swift segue