2017-11-11 5 views
0

Ich habe eine UITableView mit UITableViewCell innerhalb UICollectionViewCell, die in der ViewController erstellt wird.Senden von Daten von TableViewCell zu Controller MVC-Prinzip

Für beide, die UITableView und die UITableViewCell Ich habe eine separate Unterklasse-Datei. In der UITableViewCell -Unterklasse habe ich einen Wert geändert Delegate Aktion mit der TextField darin verbunden. Jetzt, wenn dieser Wert des Textfelds geändert wird (die Funktion wird aufgerufen), muss ich den Wert an meinen ViewController übergeben, wo es verarbeitet wird.

Wie wird das beim MVC-Prinzip gemacht?

Antwort

1

Sie können Blöcke oder Delegaten verwenden oder den Wert an den ViewController übergeben.

Innerhalb der UITableViewCell Unterklasse deklariert einen Delegierten

protocol TableViewCellDelegate { 
    func new(value: Any) // your data type here 
} 

class MySubclass: UITableViewCell { 
    weak var delegate: TableViewCellDelegate? 
} 

Jetzt im ViewController diese Delegierten verbinden. Sie können es auf der UICollectionViewCell Unterklasse übergeben und von dort an die UITableViewCell

Innerhalb der Wertänderung Delegierter des UITextField Sie rufen Ihre Methode

self.delegate?.new(value: "NewTextHere!") 

auf diese Weise die Daten zurück an den Viewcontroller übergeben werden können

+0

Vielen Dank für Ihre sehr klare Antwort. Das habe ich erfolgreich in mein Projekt implementiert. – jeanggi90

Verwandte Themen