2011-03-03 29 views
0

我認爲這種情況應該是奇怪的,但我堅持這一點。多個AlertViews - 刪除在另一個alertview後面的alertview

我有一個視圖讓我們說,視圖1,它將顯示一個或多個alertviews.Alerts堆疊之一,如果他們沒有觸及。 問題在這裏。 如果我點擊最上面的警報,它應該帶我到一個完整的新視圖讓我們說視圖2。它確實如此。現在我得到View2中仍然顯示的其餘警報。我不希望發生這種情況。我如何自動解除View1當前在View2中顯示的待處理警報?

任何幫助或任何想法真的感謝..

感謝

回答

3

不太回答你的問題,你想要的,但是......

你爲什麼有這麼多的警報?這聽起來像你可能會過度使用它們。 Apple在其人機界面指南中非常清楚您應該如何使用UIAlerts:

避免創建不必要的警報。

這些警告通常是不必要的 如果他們:

  • 僅僅增加了一些信息的可見度,尤其是關係到你的應用程序 的 標準運作 信息。

相反,你應該設計一個 醒目的方式顯示與您 應用程序的風格相協調的 信息。

  • 更新正在進展正常的任務的用戶。

相反,可以考慮使用進度 視圖或活動的指標,以提供 進度相關的反饋以 用戶(反饋這些方法中的「進度視圖」和 「活動指示器」描述 )。

  • 要求確認用戶發起的操作。

要獲得確認爲 用戶發起一個動作,甚至一個潛在的風險 行動,如刪除 接觸,你應該用一個動作 片。

  • 通知用戶他們無能爲力的錯誤或問題。

雖然可能有必要使用 警報,告訴用戶關於他們無法修復 關鍵的問題,這是 更好地對這些信息 ,如果可能的話融入UI。例如, 而不是告訴用戶每一個 服務器連接失敗時,顯示 時間的最後一次成功 連接。

如果你過度使用警報:沒有。那麼你原來的問題可能會變得沒有意義。

+0

我非常瞭解HIG ..我工作在一個聊天應用程序有點事......我辦理通過alertview多個用戶和多數民衆的聊天記錄,其中問題就來了。無論如何很多謝謝你的回答\ – iPrabu 2011-03-04 00:30:00

+0

啊,好的,謝謝。對我來說,聽起來就像你在使用UIAlerts,你不應該這樣做 - 他們應該是重要的東西,而不是呈現一般的UI內容。 – occulus 2011-03-04 07:58:23

+0

如果您過度使用提醒,Apple很可能會拒絕您的應用。你真的需要認真對待他們的HIG。 – occulus 2011-03-04 08:48:24

2

您可以關閉以編程方式使用其他UIAlertViews:

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated 

你需要參考存儲他們在創建做到這一點。

4

試試這個,

UIAlertView *autoAlertView = [[UIAlertView alloc] initWithTitle:@"Auto-dismissed Alert" message:@"This alert will be dismissed in 5 seconds." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; 
    [self performSelector:@selector(dismissAlert:) withObject:autoAlertView afterDelay:5]; 
    [autoAlertView show]; 
    [autoAlertView release]; 

-(void)dismissAlert:(UIAlertView *)alert { 
    [alert dismissWithClickedButtonIndex:0 animated:YES]; 
} 
0

謝謝,夥計們!我爲UIAlertView寫了自己的替代品。我把halftransparent UIViewframe (0, 0, 320, 480),以避免用戶交互,而我自定義的警報仍然說「請稍候」,高於這個背景視圖我把此自定義提醒這只是基本UIViewUIActivityIndicatorView

附:不要對我做出判斷,我的英語,我是俄羅斯

+0

這是如何回答這個問題的? – 2011-03-15 05:30:01