【问题标题】:Set variable before segue transition happens在 segue 转换发生之前设置变量
【发布时间】: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


    【解决方案1】:

    您可以直接使用indexPathForSelectedRow 方法从表视图中获取选定的索引路径。不需要实现didSelectRowAtIndexPath 只是为了存储选择的索引。

    prepareForSegue: 方法是您应该设置/访问转换所需变量的唯一方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      相关资源
      最近更新 更多