Protocol Delegate, MVC & UIAlertController


#1

Bonjour à tous,

J’ai un exercice dans lequel tout est dans le viewController. Je dois donc respecter le pattern MVC en créant le modèle et l’utiliser correctement. Pour cela on m’a conseillé d’utiliser le protocol delegate. Voici la vidéo de Sean Allen que l’on m’a donné :

https://www.youtube.com/watch?v=DBWu6TnhLeY&t=21s

Je dois donc pour commencer créer et afficher mes Alertes avec UIAlertController dans mon ViewController(enfin je crois). Je fais ça dans le protocol “myAlerts” du viewController. Et, dans mon fichiers Operations.swift là, mon Modèle, je crée une extension d’Operations avec le protocol: “myAlerts” précédemment créé. Je retrouve bien mes fonctions. Ensuite je viens les appeler dans les variables “canAddOperator” et “isExpressionCorrect” ( la ligne 21 remplace donc : la ligne 23, 24. même chose pour la ligne 27 qui doit remplacer les lignes 28 et 29 et enfin la ligne 40 qui remplace la 41, 42.

mon modèle :

mon ViewController :

Alors voilà j’arrive à charger UIAlertViewController, UIAlertAction mais ça ne fonctionne pas car je ne sais pas comment appelé l’équivalent de :
self.present(alertVC, animated: true, completion: nil)

Suis je dans la bonne direction ? Avez vous une astuce ? Une indication ?

Merci d’avance pour votre aide. En attendant, je continue mes recherches.

Vincent


#2

Hello,

Je pense que l’affichage des alerte n’est pas à faire dans ton modele.
Ton modele gere les données et contrôle que ce soit bon ou pas.
C’est au ViewController de s’en charger.

model->checkValue() -> Bool

Et selon le résultat, c’est ton viewController qui doit afficher des alerts par exemple.

Imaginons que demain tu bosses sur une application iwatch ou serveur, ton modele reste le meme mais la vue change et tu n’aura pas les meme moyens de prévenir l’utilisateur.