1

我正在尝试从我的 App Delegate 访问当前视图。在我的应用程序委托中有一个定时事件,它每 30 秒访问一次远程服务器。如果它发现需要更新当前数据,我需要它在当前视图上显示进度显示“请稍候”模式弹出窗口。

我想使用 DejalActivityView 在当前活动视图上显示“请稍候”窗口,但是它需要当前活动视图作为输入参数,我找不到从 App Delegate 获取它的方法。

Self.Window.RootViewController 返回 Null,我无法从委托中找到当前视图或 UIViewController。

任何帮助深表感谢。

4

1 回答 1

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]
于 2013-09-09T21:50:44.020 回答