Когда / почему / как вы будете использовать эти методы?
- navigationController:willShowViewController:animated:
– navigationController:didShowViewController:animated:
Разве вы не можете просто использовать вместо этого эти методы экземпляра UIViewController?
– viewWillAppear:
– viewDidAppear:
– viewWillDisappear:
– viewDidDisappear:
Вы должны использовать первые, если хотите получать информацию об этих событиях за пределами видимых контроллеров представления. Делегаты позволяют вам получать уведомления в одной точке. Использование методов UIViewController
привязывает вас к этим контроллерам, где вам придется писать/вызывать один и тот же код несколько раз, чтобы добиться одного и того же.
Как правило, вы бы разделили задачи на две группы:
Протокол UINavigationControllerDelegate определяет методы, которые делегат навигационного контроллера может реализовать для изменения поведения, когда контроллеры представления помещаются и извлекаются из стека навигационного контроллера.
Эти методы важны, когда вам нужно выполнить некоторые действия, которые не входят в область действия вашего контроллера представления. делегат, который должен быть предшественником объекта вашего контроллера представления в иерархии, и который будет заинтересован в выполнении некоторых действий без знания каждого контроллера представления, который нажимается или выталкивается, эти действия не обязательно связаны с этим контроллером представления конкретно, но они могут быть методами, вызываемыми для других объектов.