Cet article est une suite du ** [Swift5] View Controller Comment communiquer et transmettre des valeurs ** que j'ai publié la dernière fois. Si vous ne l'avez pas encore vu, je pense qu'il vaut mieux voir d'abord ici ▼. https://qiita.com/nkekisasa222/items/dabe806c23d3890a009f
Entrons dans le sujet principal!
Tout d'abord, écrivez le code.
SampleModel.swift
//① Créez un protocole ici
protocol DoneCatchProtocol {
//(2) Spécifiez la valeur et le type que vous souhaitez renvoyer au contrôleur (chaîne cette fois)
func catchSampleData(sampleValueA: String, sampleValueB: String, sampleValueC: String)
}
class SampleModel {
var sampleValueA: String?
var sampleValueB: String?
var sampleValueC: String?
//③ Créez une instance du protocole
var doneCatchProtocol: DoneCatchProtocol?
init(firstSampleValue: String, secondSampleValue: String, thirdSampleValue: String) {
sampleValueA = firstSampleValue
sampleValueB = secondSampleValue
sampleValueC = thirdSampleValue
}
//④ Créez une méthode car le traitement est effectué dans Model
func processingSampleModel {
//⑤ Appelez le protocole créé ici et entrez la valeur
self.doneCatchProtocol?.catchSampleData(sampleValueA: sampleValueA, sampleValueB: sampleValueB, sampleValueC: sampleValueC)
}
Je vais résumer le flux.
(1) Créez un protocole côté modèle.
(2) Spécifiez la valeur clé et le type de valeur que vous souhaitez renvoyer.
③ Créez une instance du protocole.
④ Créez une méthode car le traitement est effectué dans Model
(5) Appelez le protocole et spécifiez la valeur que vous souhaitez appeler dans Controller.
Tout d'abord, écrivez le code.
SampleViewController.swift
//(1) Appelez le contrôleur afin qu'il puisse gérer le protocole.
class SampleViewController: UIViewController, DoneCatchProtocol {
firstSampleValue = "firstSampleValue"
secondSampleValue = "secondSampleValue"
thirdSampleValue = "thirdSampleValue"
//(4) Propriété de substitution de la valeur renvoyée par SampleModel
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) Confiez-vous au protocole SampleModel et aux méthodes d'appel
sampleModel.doneCatchProtocol = self
sampleModel.processingSampleMode()
}
//(2) Il est généré automatiquement lorsque le protocole est appelé côté contrôleur.
func catchSampleData(sampleValueA: String, sampleValueB: String, sampleValueC: String) {
//⑤ Remplacez la valeur renvoyée par SampleModel
valueA = sampleValueA
valueB = sampleValueB
valueC = sampleValueC
}
}
Je vais résumer le flux.
(1) Appelez le contrôleur afin qu'il puisse gérer le protocole.
② Lorsque vous appelez le protocole dans ①, la méthode est automatiquement générée.
(3) Confiez-vous au protocole SampleModel et aux méthodes d'appel
④ Préparez une propriété pour remplacer la valeur renvoyée par SampleModel
⑤ Remplacez la valeur renvoyée par SampleModel
Vous pouvez maintenant utiliser la valeur traitée par Model dans Controller.
Dans l'article précédent et cet article, j'ai publié des articles sur la façon de communiquer d'un contrôleur à un modèle, de renvoyer le contenu traité par le modèle au contrôleur et de le gérer avec Controller. N'est-ce pas une méthode de développement souvent gérée dans le modèle MVC? Je pense que vous pouvez vous y référer par tous les moyens.
Merci d'avoir regardé jusqu'à la fin!
Recommended Posts