2011-06-08 14 views
8

मेरे पास UIAlertआईओएस: दो अलग-अलग प्रतिनिधि तरीकों के साथ दो यूआईएलर्ट

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"ok" 
                 message:@"Canc?" 
                 delegate:self 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:@"Annul", nil]; 
[alertView show]; 
[alertView release]; 

है और इसकी प्रतिनिधि विधि:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 

if(buttonIndex == 0)//OK button pressed 
{ 
    //do something 
} 
else if(buttonIndex == 1)//Annul button pressed. 
{ 
    //do something 
} 

और यह ठीक है लेकिन अगर मेरे पास एक और चेतावनी दृश्य उदाहरण है "alertViewOne", मैं चाहता हूं कि यह चेतावनी ViewOne की प्रतिनिधि विधि हो और यह पहले अलर्टव्यू के प्रतिनिधि विधि का उपयोग नहीं करना चाहिए; मेरा कोड कैसे बदलता है?

उत्तर

20

, बस प्रत्येक चेतावनी को देखने के लिए एक टैग की स्थापना की और जाँच जो एक messeg भेजा है।

alertView.tag=0; 

और फिर

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex    { 
    if(alertView.tag==0){ 

    if(buttonIndex == 0)//OK button pressed 
    { 
    //do something 
    } 
    else if(buttonIndex == 1)//Annul button pressed. 
    { 
    //do something 
    } 
}else{ 
    if(buttonIndex == 0)//OK button pressed 
    { 
    //do something 
    } 
     else if(buttonIndex == 1)//Annul button pressed. 
    { 
    //do something 
    } 
    } 

अद्यतन वहाँ ब्लॉकों का उपयोग कर एक बेहतर समाधान है।

उदाहरण के लिए आप इस परियोजना देख सकते हैं: UIAlertView-Blocks

और जहाँ तक मुझे पता है iOS8 ब्लॉक के साथ देशी अलर्ट के साथ आ जाएगा।

+0

आह ठीक है ... बहुत बहुत शुक्रिया – CrazyDev

+0

जहाँ मैं टैग सेट कर सकते हैं? डीडलोड में देखें? जब आप अलर्ट व्यू बनाते हैं तो – CrazyDev

+0

। बस आवंटन के बाद। – shannoga

संबंधित मुद्दे