2016-12-01 6 views
0

セルを次のコードで更新します。セルのデータがロードされると、セルは最初はよく見えますが、 'selected'のプロパティ値を変更すると、 'bindTo'は効果がありません。どうして?RXSwiftのbindToメソッドが失敗する理由

MyController.swift

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var model = xxxxxxxxx 
    cell.setModel(model) 
} 

MyTableViewCell.swift

var model = PublishSubject<MyClass>() 

func setModel(newModel: MyClass) { 
    self.model.onNext(newModel) 
} 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
    self.setup() 
} 

func setup() { 
    model.map{$0.selected} 
     .bindTo(selectButton.rx_selected) 
     .addDisposableTo(disposeBag) 
} 

答えて

0
MyTableViewCell.swift: 
let model = Variable(MyClass()) 
func setModel(newModel: MyClass) { 
     self.model.value = newModel 
    } 
    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 
     self.setup() 
    } 

    func setup() { 
     model.map{$0.selected}.bindTo(selectButton.rx_selected).addDisposableTo(disposeBag) 
    } 
} 
+0

あなたの答えをありがとう。たとえば、通知や別のビューで 'selected'プロパティの値を変更すると、 'selectButton'の状態が変更されます。 – Eric

+0

は1つのボタンまたは各セルに1つありますか? –

+0

すべてのセルにボタンがあります。 – Eric

関連する問題