2012-10-04 64 views
5


我有兩個帶有ok/cancel按鈕的UIAlertViews。
我趕上用戶響應:在同一視圖中顯示多個UIAlertViews

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 

我遇到的問題是,這alertView是當前打開的?
我有不同的動作單擊確定何時做/取消每一個...

+0

使用.TAG屬性來區分。 [這裏是你問的問題] [1] [1]:http://stackoverflow.com/questions/4346418/uialertviewdelegate-and-more-alert-windows –

回答

20

您有幾種選擇:

  • 使用高德。在創建警報視圖:

    myFirstAlertView = [[UIAlertView alloc] initWith...]; 
    [myFirstAlertView show]; 
    // similarly for the other alert view(s). 
    

    而且在委託方法:

    - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 
        if (alertView == myFirstAlertView) { 
         // do something. 
        } else if (alertView == mySecondAlertView) { 
         // do something else. 
        } 
    } 
    
  • 使用UIViewtag屬性:

    #define kFirstAlertViewTag 1 
    #define kSecondAlertViewTag 2 
    

    UIAlertView *firstAlertView = [[UIAlertView alloc] initWith...]; 
    firstAlertView.tag = kFirstAlertViewTag; 
    [firstAlertView show]; 
    // similarly for the other alert view(s). 
    

    - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 
        switch (alertView.tag) { 
         case kFirstAlertViewTag: 
          // do something; 
          break; 
         case kSecondAlertViewTag: 
          // do something else 
          break; 
        } 
    } 
    
  • 子類UIAlertView並添加userInfo屬性。這樣您可以將標識符添加到警報視圖。

    @interface MyAlertView : UIAlertView 
    @property (nonatomic) id userInfo; 
    @end 
    

    myFirstAlertView = [[MyAlertView alloc] initWith...]; 
    myFirstAlertView.userInfo = firstUserInfo; 
    [myFirstAlertView show]; 
    // similarly for the other alert view(s). 
    

    - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { 
        if (alertView.userInfo == firstUserInfo) { 
         // do something. 
        } else if (alertView.userInfo == secondUserInfo) { 
         // do something else. 
        } 
    } 
    
1

UIAlertViewUIView子類,所以你可以用它tag財產鑑定。所以,當你創建警報視圖設置它的標記值,然後你就可以做到以下幾點:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{ 
    if (alertView.tag == kFirstAlertTag){ 
     // First alert 
    } 
    if (alertView.tag == kSecondAlertTag){ 
     // First alert 
    } 
} 
相關問題