Zurückgeben eines Werts vom Modell an den Controller mithilfe des [Swift5] -Protokolls

Einführung

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!

Protokoll erstellen

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.

Beschreibung auf der Controllerseite

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.

Schließlich

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

Zurückgeben eines Werts vom Modell an den Controller mithilfe des [Swift5] -Protokolls
[Swift5] So kommunizieren Sie von ViewController zu Model und übergeben einen Wert
So löschen Sie einen Controller usw. mit einem Befehl
So löschen Sie benutzerdefinierte Adapterelemente mithilfe eines benutzerdefinierten Modells
9 Entspricht dem Rückgabewert
So erstellen Sie ein Formular zur Auswahl eines Datums aus dem Kalender
[Swift] So senden Sie eine Benachrichtigung
So erstellen Sie eine JAR-Datei und eine War-Datei mit dem Befehl jar
So führen Sie das Kotlin Coroutine-Beispiel über die Befehlszeile aus
[Controller] Ich möchte den numerischen Wert einer bestimmten Spalte aus der Datenbank abrufen (mein Memo).
So führen Sie einen Vertrag mit web3j aus
So sortieren Sie eine Liste mit Comparator
So rufen Sie Swift 5.3-Code von Objective-C auf
So übergeben Sie den Wert an einen anderen Bildschirm
[Swift5] So erstellen Sie einen Begrüßungsbildschirm
[Swift5] So implementieren Sie Animationen mit "lottie-ios"
[SpringBoot] So schreiben Sie einen Controller-Test
So führen Sie eine GIF-Datei über die Linux-Befehlszeile aus (Ubuntu)
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
So erhalten Sie den Einstellungswert (Eigenschaftswert) aus der Datenbank in Spring Framework
So ändern Sie den Wert einer Variablen an einem Haltepunkt in IntelliJ
So erstellen Sie eine Route direkt aus der URL, die Sie + α angeben möchten
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
So erhalten Sie einen Heapdump aus einem Docker-Container
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
[Swift] So generieren Sie eine ID, um eine bestimmte Sache eindeutig zu identifizieren (mithilfe der UUID)
[Ethereum] So führen Sie einen Vertrag mit web3j-Teil 2 aus
So implementieren Sie die Brotkrumenfunktion mit gretel
[Swift] So ändern Sie die Reihenfolge der Balkenelemente in Tab Bar Controller [Anfänger]
Übergang zu einem View Controller mit Swift WebKit
So generieren Sie einen Primärschlüssel mit @GeneratedValue
So ermitteln Sie den Gesamtwert, den Durchschnittswert usw. eines zweidimensionalen Arrays (mehrdimensionales Array) -java
Beim Einfügen von Java in MySQL erhalten Sie Auto_Increment_ID (automatischer Nummerierungswert) als Rückgabewert
Übergeben Sie ein Argument an die Methode und erhalten Sie das Ergebnis der Operation als Rückgabewert
[Swift] So zeigen Sie die eingegebenen Zeichen im Widget über UserDefaults an, wenn Sie das WidgetKit verwenden
3. Erstellen Sie eine Datenbank für den Zugriff über das Webmodul
Geben Sie den Maximalwert eines Arrays mithilfe der Java-Standardausgabe aus
[Swift] So spielen Sie Songs aus der Musikbibliothek ab
So führen Sie die SpringBoot-App als Dienst aus
So kehren Sie durch Wischen zum vorherigen Bildschirm zurück
So springen Sie von Eclipse Java zu einer SQL-Datei
Wie schreibe ich Scala aus der Perspektive von Java
Bereitstellen von einem lokalen Docker-Image auf Heroku
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
[Java] So erhalten Sie den Maximalwert von HashMap