you put here. The view hasn’t been laid out yet. 2) set<someProperty>. In the setter, subviews are often initialized. 3) viewDidLoad. The view is loaded into memory via presentViewController or pushViewController or setViewControllers. 4) viewWillAppear. For code you want executed every time the controller is atop the window hierarchy. 5) viewWillLayoutSubviews. Typically set frames here as this gets called when the device orientation changes amongst other events (e.g. when a table is reloaded). 6) viewDidAppear. Put animation code here to ensure that the animation block fires and to ensure that the user doesn’t see the view after the animation has begun.