View-Model的连接
连接一:用对应的 view-model 来初始化视图控制器:
链接二:有时你无法在初始化时将 view-model 传入, 比如在 storyboard segue 或 cell dequeuing 的情况下. 这时你应该在讨论中的视图(控制器)中暴露一个公有可写的 view-model 属性.
连接三:我们可以在程序调用前传入 view-model, 比如init和viewDidLoad, 我们可以从view-model 的属性初始化所有 UI 元素的状态.
问题:
当”go” 按钮在什么时候可用了怎么办?
当用户标签和头像在什么时候从网络上下载并填充了怎么办?
当输入框改变时,我们如何更新数据?
惯性思维:
解决问题的思路:
这种方法解决的场景是在只有再文本框发生变化时才会影响 view-model 中的isUsernameValid值. 假使还有其他变量/动作改变isUsernameValid的状态将会怎么样?对于 view-model 中的网络调用会怎么样?或许我们该为 view-model 上的方法加一个完成后回调处理, 这样我们此时就可以更新 UI 的一切东西了?使用珍贵而笨重的 KVO 方法怎么样?
进入ReactiveSwift中