【发布时间】:2017-10-14 00:23:26
【问题描述】:
我有以下代码:
import RxSwift
import RxCocoa
class ViewModel {
var text = Variable<String>("")
init() {
text.value = "hello"
}
}
class ViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
@IBOutlet weak var counterLabel: UILabel!
var viewModel = ViewModel()
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
textView.rx.text
.orEmpty
.debug()
.bind(to: viewModel.text)
.disposed(by: disposeBag)
}
}
绑定工作正常(当我更改UITextView 时,它会正确更新viewModel。但是,由于绑定是单向的(或者我理解),textView 不会以我设置的值开头在ViewModel 的init 方法中。
我可以在绑定之前做textView.text = viewModel.text.value,但由于我使用的是 RxSwift,我想了解这里的通常做法是什么。
【问题讨论】: