Ho una domanda teorica. Ora sto leggendo di Apple ViewController guida.
Scrissero:
Quando arriva il momento di chiudere un controller di visualizzazione presentato, l'approccio preferito è lasciare che il controller di visualizzazione che presenta lo ignori. In altre parole, quando possibile, lo stesso view controller che ha presentato il view controller dovrebbe assumersi anche la responsabilità di respingerlo. Sebbene esistano diverse tecniche per notificare al controller della vista che presenta la presentazione che il controller della vista presentato deve essere ignorato, la tecnica preferita è la delega.
Ma non riesco a spiegare, perché devo creare un protocollo nel VC presentato e aggiungere la variabile delegato, creare un metodo delegato nella presentazione di VC per ignorare il VC presentato, invece di una semplice chiamata nel metodo del controller di visualizzazione presentato
[self dismissViewControllerAnimated:NO completion:nil]
?
Perché la prima scelta è migliore? Perché Apple lo consiglia?
presentingViewController
è per lo più inutile in quanto si riferiràUINavigationController
all'ifself
è incorporato in uno. In tal caso, non sarai in grado di ottenerlopresentingViewController
affatto. Eppure,[self dismissViewControllerAnimated:completion]
funziona ancora in quel caso. Il mio suggerimento sarebbe di continuare a usarlo fino a quando Apple non lo risolverà.