Getting a reference to the UIApplication delegate

35,084

Solution 1

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];

Solution 2

Use:

[[UIApplication sharedApplication] delegate];
Share:
35,084

Related videos on Youtube

derGral
Author by

derGral

Apparently, this user prefers to keep an air of mystery about them.

Updated on April 11, 2020

Comments

  • derGral
    derGral about 4 years

    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?

  • Mehdi Ijadnazar
    Mehdi Ijadnazar over 8 years
    it may be obvious but worth noting that MyApplicationDelegate is the name of the class that conforms to the protocol UIApplicationDelegate, in many cases AppDelegate
  • Akbar Khan
    Akbar Khan almost 3 years
    I am trying this but getting errors. AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 'sharedApplication' is unavailable: not available on iOS (App Extension) - Use view controller based solutions where appropriate instead.