【问题标题】:Getting a reference to the UIApplication delegate获取对 UIApplication 委托的引用
【发布时间】:2009-07-26 09:33:05
【问题描述】:

我正在编写我的第一个 iPhone 应用程序,但在切换视图时遇到了问题。我在AppDelegateUIApplicationDelegate 的一个实例)中有 2 个视图和对每个视图的引用。我在applicationDidFinishLaunching 中创建了这两个实例并立即显示第一个视图。这工作正常。

问题是对另一个视图的引用在 AppDelegate 中,我不知道如何获取对它的引用,因此我可以切换到另一个视图。有没有办法获得对主要 UIApplicationUIApplicationDelegate 对象的引用?

【问题讨论】:

    标签: iphone objective-c singleton delegates uiapplication


    【解决方案1】:

    是的,UIApplication 是一个单例,并且使用 Objective-C 的普通单例模式:

    [UIApplication sharedApplication];
    

    您可以直接从中获取您的委托类:

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

    【讨论】:

    • 可能很明显但值得注意的是MyApplicationDelegate是符合UIApplicationDelegate协议的类名,很多情况下是AppDelegate跨度>
    • 我正在尝试此操作,但出现错误。 AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 'sharedApplication' 不可用:在 iOS 上不可用(应用程序扩展) - 在适当的情况下使用基于视图控制器的解决方案。
    【解决方案2】:

    用途:

    [[UIApplication sharedApplication] delegate];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      相关资源
      最近更新 更多