2010-08-03 82 views
0

我的選項卡欄應用程序有三個選項卡,每個選項卡都有自己的導航結構。我的應用程序中的幾個視圖通過Web服務調用加載數據。這些意見,以瞭解當應用程序被激活註冊該通知,以便他們可以重新加載數據:如何防止同時彈出多個UIAlertView警報?

[[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]; 

}是否正在顯示一個警告(或最近已經解僱)

回答

2

跟蹤。真的沒有別的辦法。

如果你堅持在你的應用程序委託功能,那麼你可以做一些像[(MyAppDelegate*)[UIApplication sharedApplication].delegate displayNetworkFailureDialog]

編輯:注意,有些人可能不贊成在應用程序委託堅持隨機全球克魯夫特...

+0

我已經試過的appDelegate想法,但我還是必須失去了一些東西,因爲我仍然獲得多個彈出窗口。我不知道如何跟蹤多個viewController中的警報。謝謝! – Brad 2010-08-03 18:42:31

+0

我通過在appDelegate中顯示警報,然後在每次關閉UIAlertView時使用通知來通知appDelegate,從而使其工作。這樣,appDelegate會跟蹤是否存在具有布爾變量的警報。 – Brad 2010-08-04 17:35:50