Eu tenho uma questão teórica. Agora estou lendo o guia ViewController da Apple .
Eles escreveram:
Quando chega a hora de dispensar um controlador de visualização apresentado, a abordagem preferida é permitir que o controlador de visualização em apresentação o descarte. Em outras palavras, sempre que possível, o mesmo controlador de visualização que apresentou o controlador de visualização também deve assumir a responsabilidade por descartá-lo. Embora existam várias técnicas para notificar o controlador de visualização de apresentação que seu controlador de visualização apresentado deve ser dispensado, a técnica preferida é a delegação.
Mas eu não posso explicar, porque eu tenho que criar um protocolo no VC apresentado e adicionar a variável delegada, criar o método delegado na apresentação do VC para dispensar o VC apresentado, em vez de uma chamada simples no método do controlador de visualização apresentado
[self dismissViewControllerAnimated:NO completion:nil]
?
Por que a primeira escolha é melhor? Por que a Apple o recomenda?
presentingViewController
é quase inútil, pois se refere aoUINavigationController
ifself
está embutido em um. Nesse caso, você não conseguirá obter opresentingViewController
. No entanto,[self dismissViewControllerAnimated:completion]
ainda funciona nesse caso. Minha sugestão seria continuar a usar isso até que a Apple conserte.