获取UIApplication代理的引用

43

我正在编写我的第一个iPhone应用程序,但在切换视图时遇到了问题。我有两个视图,并且在AppDelegate中分别引用它们(这是UIApplicationDelegate的实例)。我在applicationDidFinishLaunching中创建了两个实例,并立即显示第一个视图。这很好地运行。

问题是另一个视图的引用位于AppDelegate中,我无法找到获取引用以便切换到另一个视图的方法。是否有一种方法可以获取对主要UIApplicationUIApplicationDelegate对象的引用?

2个回答

109

是的,UIApplication是一个单例,并使用Objective-C中的常规单例模式:

[UIApplication sharedApplication];
你可以直接从中获取你的委托类:
MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

1
值得注意的是,MyApplicationDelegate是符合协议UIApplicationDelegate的类的名称,在许多情况下也称为AppDelegate。 - Mehdi Ijadnazar
我正在尝试这个,但是出现了错误。 AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];“sharedApplication”不可用:在iOS(应用扩展)上不可用 - 在适当的情况下使用基于视图控制器的解决方案。 - Akbar Khan

19

使用:

[[UIApplication sharedApplication] delegate];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接