У меня теоретический вопрос. Сейчас я читаю руководство Apple ViewController .
Они написали:
Когда приходит время отклонить представленный контроллер представления, предпочтительный подход состоит в том, чтобы позволить контроллеру представления представления отклонить его. Другими словами, всякий раз, когда это возможно, тот же контроллер представления, который представил контроллер представления, также должен нести ответственность за его отклонение. Хотя существует несколько методов для уведомления контроллера представления представления о том, что его представленный контроллер представления должен быть отклонен, предпочтительным методом является делегирование.
Но я не могу объяснить, почему я должен создать протокол в представленном VC и добавить переменную делегата, создать метод делегата в представлении VC для отклонения представленного VC вместо простого вызова в представленном методе контроллера представления.
[self dismissViewControllerAnimated:NO completion:nil]
?
Почему первый вариант лучше? Почему Apple рекомендует это?
presentingViewController
в большинстве случаев бесполезно, так как оно будет относиться кUINavigationController
ifself
, встроенному в него. В этом случае вы вообще не сможете получитьpresentingViewController
. Тем не менее,[self dismissViewControllerAnimated:completion]
в этом случае все еще работает. Я предлагаю продолжать использовать это, пока Apple не исправит это.