我正在尝试从我的App Delegate访问当前视图。在我的app委托中,有一个定时事件,每30秒访问一个远程服务器。如果它发现需要更新当前数据,我需要它来显示进度显示" Please Wait"当前视图的模态弹出窗口。
我想使用DejalActivityView来显示" Please Wait"当前活动视图上的窗口,但它需要当前活动视图作为输入参数,我找不到从App Delegate获取它的方法。
Self.Window.RootViewController返回Null,没有当前视图或UIViewController可见,我可以从委托中找到。
非常感谢任何帮助。
答案 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]