Iphone从AppDelegate访问属性值

Sab*_*a B 26 iphone objective-c

如何从someView控制器访问AppDelegate类的属性值而不在视图控制器中创建委托的引用?

Tim*_*Tim 51

我不太清楚你的意思 - 有多种方法可以从您的应用程序委托信息到视图控制器和短语"而无需创建委托的参考"目前还不清楚.您的选择基本上是:

  1. 引用应用程序委托,适当地进行转换.您可以在视图控制器类中编写代码,如:
    id propertyValue = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] myProperty];
    Run Code Online (Sandbox Code Playgroud)
  2. 创建视图控制器时传递属性.这要求视图控制器具有@property声明和@synthesized以供使用,然后您将使应用程序委托仅在视图控制器实例上设置该属性.

这两个选项都不要求您保留应用程序委托的副本作为a @property,但第一个确实引用了委托一次.


par*_*par 20

[UIApplication sharedApplication] .delegate

您还需要在视图控制器中包含应用程序委托头文件,并可能将id的委托类型转换为您的实际应用程序委托类.

#include "MyAppDelegate.h"

((MyAppDelegate *)[UIApplication sharedApplication].delegate).myProperty;
Run Code Online (Sandbox Code Playgroud)