title: Objective-C – Difference in app startup methods from iOS 4 to iOS 5?
body: <p>I have developed my app initially for iOS 4 and now that iOS 5 is out I decided to develop for the iOS 5 SDK which now seems to have broken my app.</p>
  
  <p>I have a tab bar application with a navigation controller in each tab.</p>
  
  <p>In iOS 4 everything that was in the <code>-application:didFinishLaunchingWithOptions:</code> method was executed first after startup. After that method was executed, the view controller for the first tab was loaded.</p>
  
  <p>So when I log my startup app process (running the simulator for <strong>iOS 4.3</strong>) it looks like this:</p>
  
  <pre><code>-[AcandoAppDelegate application:didFinishLaunchingWithOptions:] [Line 35] didFinishLaunchingWithOptions method running
  -[AcandoAppDelegate application:didFinishLaunchingWithOptions:] [Line 60] This should be executed first // And it does as it should
  -[AcandoAppDelegate applicationDidBecomeActive:] [Line 254] applicationDidBecomeActive method running
  -[SeminarsViewController viewDidLoad] [Line 58] 2 - viewDidLoad method running
  -[SeminarsViewController viewDidLoad] [Line 60] This should be executed second // Also as it should
  -[SeminarsViewController viewWillAppear:] [Line 123] 3 - viewWillAppear method running
  -[SeminarsViewController viewDidAppear:] [Line 173] viewDidAppear running
  </code></pre>
  
  <p>Now when I log my startup app process (running the simulator for <strong>iOS 5.0</strong>) it looks like this:</p>
  
  <pre><code>-[AcandoAppDelegate application:didFinishLaunchingWithOptions:] [Line 35] didFinishLaunchingWithOptions method running
  -[SeminarsViewController viewDidLoad] [Line 58] 2 - viewDidLoad method running
  -[SeminarsViewController viewDidLoad] [Line 60] This should be executed second // So this should be executed second but is executed first
  -[SeminarsViewController viewWillAppear:] [Line 123] 3 - viewWillAppear method running
  -[AcandoAppDelegate application:didFinishLaunchingWithOptions:] [Line 60] This should be executed first // And this is executed second but should be executed first
  -[AcandoAppDelegate applicationDidBecomeActive:] [Line 254] applicationDidBecomeActive method running
  -[SeminarsViewController viewDidAppear:] [Line 173] viewDidAppear running
  </code></pre>
  
  <p>Am I missing something obvious here? For me it looks like we have two different startup situations between iOS 4 and iOS 5?</p>