O'Reilly logo

Programming iOS 4 by Matt Neuburg

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

View Controller Lifetime Events

As views come and go, driven by view controllers and the actions of the user, events arrive that give you the opportunity to respond.

First, there are delegate messages:

Tab bar controller
A tab bar controller can have a delegate (adopting the UITabBarControllerDelegate protocol) that receives messages when the selected view changes — you can even prevent the user from selecting a view — and when the user customizes the tab bar through the More item.
Navigation controller
A navigation controller can have a delegate (adopting the UINavigationControllerDelegate protocol) that receives messages when a contained view controller’s view appears, either because the view controller is pushed onto the stack or because the stack is popped so as to bring the view controller to the top.

In addition, a view controller receives four events that you can override in a subclass (the parameter tells you whether the change is being animated):

  • viewWillAppear:
  • viewDidAppear:
  • viewWillDisappear:
  • viewDidDisappear:

Note

If you override any of these methods, you must call super.

In these four view controller events, the notions “appear” and “disappear” mean exactly what you think they do. View controllers are all about views that can come and go — for example, because a modal view is shown, because a modal view is dismissed, because a tab bar controller is switched to a new view, or because a navigation controller’s stack is pushed or popped. In each of these cases, some ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required