Tengo una pregunta teórica. Ahora estoy leyendo la guía ViewController de Apple .
Ellos escribieron:
Cuando llega el momento de descartar un controlador de vista presentado, el enfoque preferido es dejar que el controlador de vista de presentación lo descarte. En otras palabras, siempre que sea posible, el mismo controlador de vista que presentó el controlador de vista también debe asumir la responsabilidad de descartarlo. Aunque existen varias técnicas para notificar al controlador de vista de presentación que su controlador de vista presentado debe descartarse, la técnica preferida es la delegación.
Pero no puedo explicar por qué tengo que crear un protocolo en el VC presentado y agregar la variable delegada, crear un método delegado al presentar VC para descartar el VC presentado, en lugar de una simple llamada en el método del controlador de vista presentado
[self dismissViewControllerAnimated:NO completion:nil]
?
¿Por qué es mejor la primera opción? ¿Por qué Apple lo recomienda?
presentingViewController
es en su mayoría inútil, ya que se referirá aUINavigationController
siself
está incrustado en uno. En cuyo caso, no podrá obtener elpresentingViewController
. Sin embargo,[self dismissViewControllerAnimated:completion]
todavía funciona en ese caso. Mi sugerencia sería continuar usándolo hasta que Apple lo arregle.