2012-10-04 27 views
5


मेरे पास दो UIAlertViews ठीक/रद्द बटन के साथ हैं।एक ही दृश्य में एकाधिक UIAlertViews

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

सवाल मैं आ रही है, जो alertView वर्तमान में खुला है:
मैं द्वारा उपयोगकर्ता प्रतिक्रिया पकड़ने?

मैं जब ठीक पर क्लिक करने के लिए विभिन्न कार्यों है/हर एक पर रद्द ...

+0

उपयोग .tag संपत्ति अंतर करने के लिए। http://stackoverflow.com/questions/4346418/uialertviewdelegate-and-more-alert-windows: [1] [1] [यहाँ सवाल आप से पूछा है] –

उत्तर

20

आपके पास कई विकल्प:

  • उपयोग ivars। जब चेतावनी दृश्य बनाने:

    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. 
        } 
    } 
    
  • उपयोग UIView की tag संपत्ति:

    #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

UIAlertView तो आप पहचान के लिए अपने tag संपत्ति का उपयोग कर सकते एक UIView उपवर्ग है। तो जब आप बनाने चेतावनी दृश्य अपनी टैग मान सेट करें और फिर आप सक्षम निम्न करने के लिए किया जाएगा:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{ 
    if (alertView.tag == kFirstAlertTag){ 
     // First alert 
    } 
    if (alertView.tag == kSecondAlertTag){ 
     // First alert 
    } 
} 
संबंधित मुद्दे