访问窗口属性app委托iOS

时间:2017-08-08 06:07:45

标签: ios objective-c window appdelegate

我是IOS的新手。我有一个简单的问题。我想从另一个文件访问AppDelegate.h文件中的window属性。另外,我无法将AppDelegate.h文件导入到另一个文件中,因为这些文件会不断地互相导入。是否可以从AppDelegate.h文件外部访问window属性?

感谢

2 个答案:

答案 0 :(得分:2)

选项1使用KVC

id appDelegate = [UIApplication sharedApplication].delegate;
UIWindow *window = [appDelegate valueForKey:@"window"];

Option2使用UIApplication的keywindow属性

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
  

此属性保存最近发送makeKeyAndVisible消息的windows数组中的UIWindow对象。

<3> Option3使用UIApplication的windoss属性

NSArray * array = [[UIApplication sharedApplication] windows];

  

此属性包含当前与应用关联的UIWindow对象。此列表不包括由系统创建和管理的窗口,例如用于显示状态栏的窗口。

     

阵列中的窗口按窗口级别从后向前排序;因此,数组中的最后一个窗口位于所有其他应用程序窗口之上。

答案 1 :(得分:0)

如下所示设置AppDelegate的全局变量,这样您就可以随时使用AppDelegate的/ access属性。

appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

您可以通过

访问窗口对象
appDelegate.window ...

注意:不要忘记在AppDelegate的.h文件中添加declare对象

AppDelegate *appDelegate;