Mam teoretyczne pytanie. Teraz czytam przewodnik Apple ViewController .
Oni napisali:
Kiedy przychodzi czas na odrzucenie kontrolera widoku prezentowanego, preferowanym podejściem jest pozwolenie kontrolerowi widoku prezentacji na odrzucenie go. Innymi słowy, gdy tylko jest to możliwe, ten sam kontroler widoku, który przedstawił kontrolera widoku, powinien również wziąć odpowiedzialność za jego odwołanie. Chociaż istnieje kilka technik powiadamiania kontrolera widoku prezentującego, że jego kontroler widoku prezentowanego powinien zostać odrzucony, preferowaną techniką jest delegowanie.
Ale nie potrafię wyjaśnić, dlaczego muszę stworzyć protokół w przedstawionym VC i dodać zmienną delegata, stworzyć metodę delegata w prezentacji VC dla odrzucenia prezentowanego VC, zamiast prostego wywołania w przedstawionym widoku metoda kontrolera
[self dismissViewControllerAnimated:NO completion:nil]
?
Dlaczego pierwszy wybór jest lepszy? Dlaczego Apple to poleca?
presentingViewController
jest w większości bezużyteczne, ponieważ będzie odnosić się doUINavigationController
ifself
jest osadzone w jednym. W takim przypadku w ogóle nie będziesz w stanie uzyskaćpresentingViewController
. Jednak[self dismissViewControllerAnimated:completion]
nadal działa w tym przypadku. Moją sugestią byłoby dalsze używanie tego, dopóki Apple tego nie naprawi.