LoginSignup
4
4

More than 5 years have passed since last update.

Swift/BondでUItextFieldとviewModelに対して、bidirectionalBindToを設定する

Posted at

状況

textFieldをviewModelのプロパティと双方向バインディングしようとすると以下のように怒られました

viewModel.swift
class ViewModel: NSObject {
    static var str = Observable("")
}
MyViewController
import UIKit
import Bond

class MyViewController: UIViewController {
    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad(){
       textField.bnd_text.bidirectionalBindTo(viewModel.str)

    }
}
エラー文
Cannot invoke 'bidirectionalBindTo' with an argument list of type '(Observable<String>)'

解決方法

viewModelの定義時に、ちゃんと型を合わせてあげれば良いことがわかりました

viewModel.swift
class ViewModel: NSObject {
    static var str:Observable<String?> = Observable("")
}

失敗例

以下はやってみて、ダメだったものたちです。
Stringがoptionalなので、Observable<String>?はだめなんですね

viewModel.swift
static var str:Observable<String> = Observable("")
static var str:Observable<String>? = Observable("")
static var str:Observable<String?> = ""
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4