将数据从view2传递到view1并更新标签

时间:2015-08-25 20:49:12

标签: ios swift delegates

我有view1和view2。在view2中,我设置了一个委托并输入了一些数据。当我按下保存按钮i view2时,我被发送到view1。在view1中,我得到了我在view2中输入的数据。但是......当我尝试用view2中的数据更新view1中的标签或按钮文本时,没有任何反应。 View1未更新。

这是view1中的委托函数,它应该更新标签:

func getCurrentContact(ViewController: ViewControllerSettings, data: (ContactDetails)) {
    NSLog("Yes, the delegate is called")

    self.lblContact1.text = data.name1 as? String
}

任何人都知道为什么lblContact1.text没有更新?它与启动时保持一致。 data.name1的NSLog包含我在view2中输入的正确数据。看起来像view1需要刷新或者其他东西......

顺便说一句;有没有人知道GitHub中的一个正在运行的swift项目,或者有哪些具有导航控制器和一个工作委托,用于将数据从view2发送到view1?会很出色...

1 个答案:

答案 0 :(得分:0)

尝试重写这样的代码,以便更好地调试它:

func getCurrentContact(ViewController: ViewControllerSettings, data: (ContactDetails)) {
    println("Yes, the delegate is called")

    if let name = data.name1 as ? String {
        println("Setting lblContact1 with \(name)")
        self.lblContact1.text = name
    } else {
        println("Either data was empty or data.name1 couldn't be extracted")
    }
}

如果您实际按预期收到data.name1,那么我会检查您提供的代码实际上是running on the main thread

请注意,我还将NSLog替换为println number of reasons