Dieser Artikel ist eine Fortsetzung des ** [Swift5] View Controllers zum Kommunizieren und Übergeben von Werten **, den ich zuletzt veröffentlicht habe. Wenn Sie es noch nicht gesehen haben, ist es besser, es zuerst hier zu sehen. https://qiita.com/nkekisasa222/items/dabe806c23d3890a009f
Kommen wir zum Hauptthema!
Schreiben Sie zuerst den Code.
SampleModel.swift
//① Erstellen Sie hier ein Protokoll
protocol DoneCatchProtocol {
//(2) Geben Sie den Wert und den Typ an, den Sie an Controller zurückgeben möchten (diesmal Zeichenfolge).
func catchSampleData(sampleValueA: String, sampleValueB: String, sampleValueC: String)
}
class SampleModel {
var sampleValueA: String?
var sampleValueB: String?
var sampleValueC: String?
//③ Erstellen Sie eine Instanz des Protokolls
var doneCatchProtocol: DoneCatchProtocol?
init(firstSampleValue: String, secondSampleValue: String, thirdSampleValue: String) {
sampleValueA = firstSampleValue
sampleValueB = secondSampleValue
sampleValueC = thirdSampleValue
}
//④ Erstellen Sie eine Methode, da die Verarbeitung in Model ausgeführt wird
func processingSampleModel {
//⑤ Rufen Sie das hier erstellte Protokoll auf und geben Sie den Wert ein
self.doneCatchProtocol?.catchSampleData(sampleValueA: sampleValueA, sampleValueB: sampleValueB, sampleValueC: sampleValueC)
}
Ich werde den Ablauf zusammenfassen.
(1) Erstellen Sie ein Protokoll auf der Modellseite.
(2) Geben Sie den Schlüsselwert und den Typ des Werts an, den Sie zurückgeben möchten.
③ Erstellen Sie eine Instanz des Protokolls.
④ Erstellen Sie eine Methode, da die Verarbeitung in Model ausgeführt wird
(5) Rufen Sie das Protokoll auf und geben Sie den Wert an, den Sie in Controller aufrufen möchten.
Schreiben Sie zuerst den Code.
SampleViewController.swift
//(1) Rufen Sie den Controller an, damit er das Protokoll verarbeiten kann.
class SampleViewController: UIViewController, DoneCatchProtocol {
firstSampleValue = "firstSampleValue"
secondSampleValue = "secondSampleValue"
thirdSampleValue = "thirdSampleValue"
//(4) Eigenschaft zum Ersetzen des von SampleModel zurückgegebenen Werts
var valueA: String?
var valueB: String?
var valueC: String?
override func viewDidLoad() {
super.viewDidLoad()
startSampleModel()
}
func startSampleModel() {
let sampleModel = SampleModel(firstSampleValue: firstSampleValue, secondSampleValue: secondSampleValue, thirdSampleValue: thirdSampleValue)
//(3) Vertrauen Sie dem SampleModel-Protokoll und den Aufrufmethoden an
sampleModel.doneCatchProtocol = self
sampleModel.processingSampleMode()
}
//(2) Es wird automatisch generiert, wenn das Protokoll auf der Controllerseite aufgerufen wird.
func catchSampleData(sampleValueA: String, sampleValueB: String, sampleValueC: String) {
//⑤ Ersetzen Sie den von SampleModel zurückgegebenen Wert
valueA = sampleValueA
valueB = sampleValueB
valueC = sampleValueC
}
}
Ich werde den Ablauf zusammenfassen.
(1) Rufen Sie den Controller an, damit er das Protokoll verarbeiten kann.
② Wenn Sie das Protokoll in ① aufrufen, wird die Methode automatisch generiert.
(3) Vertrauen Sie dem SampleModel-Protokoll und den Aufrufmethoden an
④ Bereiten Sie eine Eigenschaft vor, um den von SampleModel zurückgegebenen Wert zu ersetzen
⑤ Ersetzen Sie den von SampleModel zurückgegebenen Wert
Jetzt können Sie den von Model in Controller verarbeiteten Wert verwenden.
Im vorherigen Artikel und in diesem Artikel habe ich beschrieben, wie Sie von Controller zu Modell kommunizieren, den von Model verarbeiteten Inhalt an Controller zurückgeben und mit Controller verarbeiten können. Ist es nicht eine Entwicklungsmethode, die häufig im MVC-Modell behandelt wird? Ich denke, dass Sie sich auf alle Fälle darauf beziehen können.
Danke, dass du bis zum Ende zugesehen hast!
Recommended Posts