获取对 UIApplication 委托的引用
Posted
技术标签:
【中文标题】获取对 UIApplication 委托的引用【英文标题】:Getting a reference to the UIApplication delegate 【发布时间】:2009-07-26 09:33:05 【问题描述】:我正在编写我的第一个 iPhone 应用程序,但在切换视图时遇到了问题。我在AppDelegate
(UIApplicationDelegate
的一个实例)中有 2 个视图和对每个视图的引用。我在applicationDidFinishLaunching
中创建了这两个实例并立即显示第一个视图。这工作正常。
问题是对另一个视图的引用在 AppDelegate 中,我不知道如何获取对它的引用,因此我可以切换到另一个视图。有没有办法获得对主要 UIApplication
或 UIApplicationDelegate
对象的引用?
【问题讨论】:
【参考方案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];
【讨论】:
以上是关于获取对 UIApplication 委托的引用的主要内容,如果未能解决你的问题,请参考以下文章