【发布时间】:2015-08-25 20:49:12
【问题描述】:
我有 view1 和 view2。在 view2 中,我设置了一个委托并输入了一些数据。当我按下保存按钮时,我 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 的工作委托的东西?会很出色...
【问题讨论】:
-
为什么不用 prepareForSegue 传递数据?
-
嗯,我喜欢使用委托的想法。
-
我也相信您应该在需要时使用 prepareForSegue,以便将数据从 view1 发送到 view2,并使用委托将数据从 view2 发送回 view1