如何从someView控制器访问AppDelegate类的属性值,而不在视图控制器中创建委托的引用?
答案 0 :(得分:51)
我不太清楚你的意思 - 有多种方法可以将你的应用程序委托中的信息传递给视图控制器,并且“不创建委托参考”这一短语不清楚。您的选择基本上是:
id propertyValue = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] myProperty];
@property
并使用@synthesize
d,然后您可以让app delegate在视图控制器实例上设置属性。这两个选项都不要求您将应用代理的副本保留为@property
,但第一个确实会引用该代理一次。
答案 1 :(得分:19)
[UIApplication sharedApplication] .delegate
您还需要在视图控制器中包含app delegate头文件,并可能将id的委托类型转换为您的实际应用委托类。
#include "MyAppDelegate.h"
((MyAppDelegate *)[UIApplication sharedApplication].delegate).myProperty;
答案 2 :(得分:2)
[UIApplication sharedApplication].delegate;