Когда / почему / как использовать методы экземпляра протокола UINavigationControllerDelegate? - PullRequest
9 голосов
/ 30 августа 2010

Когда / почему / как бы вы использовали эти методы?

- navigationController:willShowViewController:animated:
– navigationController:didShowViewController:animated:

Не могли бы вы просто использовать вместо этого эти методы экземпляра UIViewController?

– viewWillAppear:
– viewDidAppear:
– viewWillDisappear:
– viewDidDisappear:

Ответы [ 2 ]

16 голосов
/ 30 августа 2010

Вы бы использовали первые, если хотите получать информацию об этих событиях за пределами контроллеров видимого представления. Делегаты позволяют получить уведомление в одном месте. Использование UIViewController методов связывает вас в этих контроллерах, где вам придется писать / вызывать один и тот же код несколько раз, чтобы достичь того же.

Обычно вы делите задачи на две группы:

  • Вещи, которые происходят на всех контроллерах представления: используйте делегатов
  • Вещи, происходящие в одном контроллере представления: используйте методы экземпляра
1 голос
/ 30 августа 2010

Протокол UINavigationControllerDelegate определяет методы, которые делегат контроллера навигации может реализовать для изменения поведения, когда контроллеры представления выталкиваются и извлекаются из стека контроллера навигации.

Этот метод важен, когда вам нужно выполнить некоторые действия, которые не попадают в область действия вашего контроллера представления. делегат, который должен быть предшественником объекта вашего контроллера представления в иерархии и который был бы заинтересован в выполнении некоторых действий без знания каждого контроллера представления, который перемещается или выдвигается, эти действия не обязательно связаны конкретно с этим контроллером представления но они могут быть методами, вызываемыми для других объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...