从AppDelegate访问当前视图

时间:2013-09-09 21:45:09

标签: ios uiviewcontroller

我正在尝试从我的App Delegate访问当前视图。在我的app委托中,有一个定时事件,每30秒访问一个远程服务器。如果它发现需要更新当前数据,我需要它来显示进度显示" Please Wait"当前视图的模态弹出窗口。

我想使用DejalActivityView来显示" Please Wait"当前活动视图上的窗口,但它需要当前活动视图作为输入参数,我找不到从App Delegate获取它的方法。

Self.Window.RootViewController返回Null,没有当前视图或UIViewController可见,我可以从委托中找到。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

您需要使用其他架构,例如通知,而不是这样做。

在AppDelegate中,您将要执行此操作,请将其替换为:

[[NSNotificationCenter defaultCenter] postNotificationName:@"showPleaseWaitAlert" object:nil];

然后,在视图控制器中实现这样的方法:

-(void)showPleaseWait {
  //Show your dialog here
}

然后,在viewDidLoad之类的方法中,执行以下操作:

[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showPleaseWait) name:@"showPleaseWaitAlert" object:nil]