Getting a reference to the UIApplication delegate

delegates, iphone, objective-c, singleton, uiapplication

Solution

Yes, UIApplication is a singleton, and uses the normal singleton pattern for Objective-C:

[UIApplication sharedApplication];

You can get your delegate class directly from it:

MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

Problem

I'm writing my first iPhone application and I'm having trouble switching views. I have 2 views and a reference to each in the `AppDelegate` (an instance of `UIApplicationDelegate`). I create instances of both in the `applicationDidFinishLaunching` and immediately show the first view. This works fine. The problem is the reference to the other view is in the AppDelegate and I can't figure out how to get a reference to it so I can switch to the other view. Is there a way to get a reference to the main `UIApplication` or `UIApplicationDelegate` objects?

Original source