2010-12-19 36 views
1

我有一個IBAction,它會進行一些處理,並且內部會有幾個UIAlertViews(用於顯示警報)。然而,該段中的FIRST警報似乎被稱爲TWICE(一旦我點擊後立即發生,並且在所有其他警報發生後又一次)。此外,警報第一次出現時,警報會自動關閉,即使我有OK按鈕並且用戶沒有點擊它。第二次出現警報時,它將要求用戶單擊確定。IPHONE:UIAlertView在自定義函數中調用兩次/ IBAction

我試着將段落從IBAction移出到它自己的函數中,但仍然出現問題。

所有在我IBAction爲/功能警報是相同的:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"blah" message:@"blah" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil]; 
    [alert show]; 
    [alert release]; 

但其他警報正常工作。

的代碼如下所示( 「嗒嗒」 是被稱爲兩倍,):

-(void)function { 
    if (......) { 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"blah" message:@"blah" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil]; 
     [alert show]; 
     [alert release]; 
    for (int i=0; i<2; i++) { 
    if (.....) { 
      //do stuff 
    } else { 
UIAlertView *alert2 = [[UIAlertView alloc] initWithTitle:@"blah2" message:@"blah2" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil]; 
     [alert2 show]; 
     [alert2 release]; 
    } 
    } 
    } else { 
UIAlertView *alert3 = [[UIAlertView alloc] initWithTitle:@"blah3" message:@"blah3" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil,nil]; 
     [alert3 show]; 
     [alert3 release]; 
} 
} 

請幫助!

+0

顯示完整代碼 – VdesmedT 2010-12-19 14:45:12

+0

它的直觀代碼,沒什麼奇特的。 – duckizz 2010-12-19 14:50:13

回答

0

首先,我們需要更多代碼來診斷您的問題。你提供的是不夠的。第二,我曾遇到類似的問題:當組成電子郵件操作是由未在該設備上設置她的電子郵件帳戶的用戶觸發的,我讓我的應用程序顯示一個UIAlertView。但是,當我在這種情況下在真實設備上測試我的代碼時,兩個連續的UIAlertViews一個接一個地顯示,這兩個都是關於電子郵件帳戶未設置問題。

我終於明白,當用戶嘗試撰寫電子郵件時,如果電子郵件帳戶沒有設置,iOS系統會自動顯示UIAlertView,這就是爲什麼當我僅預期有兩個UIAlertView出現時。

希望有所幫助。

+0

以及問題是我的代碼是相當長的。其主要是如果其他和循環語句做的東西(這工作正常,因爲我已經測試),但它的uialertview行爲奇怪。 – duckizz 2010-12-19 14:55:36

+0

所以我想我問,如果其他人曾經遇到過這個問題之前,uialertview被稱爲兩次,第一次被稱爲,uialertview將自動關閉(沒有人按OK按鈕),而第二次它出現它需要一個點擊關閉它。 – duckizz 2010-12-19 14:58:36

+0

或者它可能是因爲我創建程序作爲視圖應用程序,但我從來沒有使用視圖(在interfacebuilder中),我創建了一個窗口,所有的動作都在窗口上完成? – duckizz 2010-12-19 15:17:58