我有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?会很出色...
答案 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