2016-12-01 1 views
0

fehlgeschlagen Ich eine Zelle mit dem folgenden Code aktualisieren. Wenn die Daten der Zelle geladen werden, sieht die Zelle zunächst gut aus, aber wenn ich einige Änderungen am Eigenschaftswert von 'ausgewählt' vornahm, hat 'bindTo' keine Auswirkung? Warum?Warum ist die Methode bindTo von RXSwift

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) 
} 

Antwort

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

Danke für deine Antwort. Zum Beispiel, wenn ich den Wert der 'ausgewählten' Eigenschaft durch eine Benachrichtigung oder eine andere Ansicht ändern, sollte sich der Zustand von 'selectButton' ändern. – Eric

+0

Gibt es eine Schaltfläche oder eine für jede Zelle? –

+0

Jede Zelle hat einen Knopf. – Eric

Verwandte Themen