如何防止多个UIAlertView警报一次弹出?

时间:2010-08-03 17:59:57

标签: iphone cocoa-touch uitabbarcontroller alert uialertview

我的标签栏应用程序有三个标签,每个标签都有自己的导航结构。我的应用程序中的一些视图通过Web服务调用加载数据。这些视图会注册此通知,以便了解应用程序何时变为活动状态,以便他们可以重新加载数据:

    [[NSNotificationCenter defaultCenter] addObserver:self 
        selector:@selector(reloadView) name:UIApplicationDidBecomeActiveNotification 
        object:NO];

当应用程序变为活动状态时,这些视图都会尝试重新加载其数据;但是,如果没有Internet连接,则会捕获错误并向用户显示UIAlert。问题是,如果其中3个视图正在尝试重新加载数据,则会弹出3条警报消息。

如何阻止多个提醒弹出给用户?

我感谢您的所有想法,想法和建议!!

谢谢!

布拉德

编辑:我试过把它放在我的appDelegate中,但即使使用这种方法,我似乎也会得到多个弹出窗口。

-(void)displayAlertWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:delegate cancelButtonTitle:@"Cancel" otherButtonTitles:@"Retry",nil];
[alert show];
[alert release];

}

1 个答案:

答案 0 :(得分:2)

跟踪当前是否正在显示警报(或最近已被解雇)。真的没有别的办法了。

如果您在应用代理中坚持使用该功能,那么您可以执行[(MyAppDelegate*)[UIApplication sharedApplication].delegate displayNetworkFailureDialog]之类的操作。

编辑:请注意,有些人可能会对您的应用代表中的随机全局信息感到不满......