ios - 为 Unwind Segue 更新变量 (Swift)

标签 ios swift

我正在尝试使用 Unwinding Segue 更新先前 TableView 上的 UILabel。除了每次在我的模态上选择某些内容时我都会带回空白文本外,我一切正常。我实际上是在带回我正在创建的变量 (myName) 的“”。

但是,我想因为我正在更新我的 didSelectRowAtIndex 中的变量,所以我会把它带回来。我确实检查过在模态上选择时是否得到了一个值,我得到了。所以我认为这就像更新变量 myName 一样简单。

NewTableViewController(模态):

var myName = ""

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let row = Int(indexPath.row)
    var selectedObject = objects[row] as! PFObject
    var selectedName = selectedObject["myName"] as! String

    myName = selectedName as String
    println(myName)
}

TableViewController(源 View Controller ):

  @IBAction func unwindName(segue: UIStoryboardSegue) {
    println("unwind working")
    if let svc = segue.sourceViewController as? NewTableViewController {
        self.myNameLabel.text = svc.myName
        println(myNameLabel)
    }
}    

最佳答案

当您从单元格调用转场(展开或任何其他类型)时,转场将在调用 didSelectRowAtIndexPath 之前执行,因此您不应该在那里设置变量值(实际上您不需要实现)方法)。您应该在源 View Controller 中实现 prepareForSegue,并在那里设置变量的值。

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

        let cell = sender as! UITableViewCell
        let indexPath = self.tableView.indexPathForCell(cell)
        var selectedObject = objects[indexPath.row] as! PFObject
        var selectedName = selectedObject["myName"] as! String

        myName = selectedName as String
    }

关于ios - 为 Unwind Segue 更新变量 (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29922777/

相关文章:

ios - 清除 UIViewController

ios - 从枚举类型 'enum UIViewAnimationOption 到不同枚举类型 uiviewanimation transition 的隐式转换

iphone - 无法在 xcode 4.5.1 和 ios 5.1 中使用 testflight 或排灯节安装 ipa 文件

ios - 解析 JSON 对象和子元素

ios - 使用嵌套的 UIStackview 隐藏 UIStackView

ios - Swift SDK 中会发生框架冲突吗?

ios - "enable"- 我的 UIButton 成员不存在,为什么?

由于 IBOutlet,iOS 应用程序在 didFinishLaunchingWithOptions 中崩溃

swift - 当不再显示成员堆栈 View 时,如何动态调整 UIView 的高度?

ios - 从JSON数据创建NSArray