J'ai une question théorique. Maintenant, je lis le guide ViewController d'Apple .
Ils ont écrit:
Quand vient le temps de rejeter un contrôleur de vue présenté, l'approche préférée est de laisser le contrôleur de vue de présentation le rejeter. En d'autres termes, dans la mesure du possible, le même contrôleur de vue qui a présenté le contrôleur de vue devrait également prendre la responsabilité de le rejeter. Bien qu'il existe plusieurs techniques pour notifier au contrôleur de vue de présentation que son contrôleur de vue présenté doit être rejeté, la technique préférée est la délégation.
Mais je ne peux pas expliquer, pourquoi je dois créer un protocole dans le VC présenté et ajouter une variable de délégué, créer une méthode de délégué dans la présentation de VC pour rejeter le VC présenté, au lieu d'un simple appel dans la méthode de contrôleur de vue présentée
[self dismissViewControllerAnimated:NO completion:nil]
?
Pourquoi le premier choix est-il meilleur? Pourquoi Apple le recommande-t-il?
presentingViewController
est la plupart du temps inutile car elle se réfère auUINavigationController
ifself
est intégré dans un. Dans ce cas, vous ne pourrez pas du tout obtenir lepresentingViewController
. Pourtant,[self dismissViewControllerAnimated:completion]
fonctionne toujours dans ce cas. Ma suggestion serait de continuer à l'utiliser jusqu'à ce qu'Apple le corrige.