Intereting Posts
IOS एआरसी NSMutableArray मुझे इसके लिए alloc नई स्मृति से पहले AllObjects को हटाने की जरूरत है मैं Xcode 5 के साथ आईओएस 6 के लिए कैसे बना सकता हूं? मैं 3 UIButtons को UITableCellView के केंद्र में कैसे संरेखित कर सकता हूं? आईओएस में पर्यावरण चर को कहां सेट करना है? आईओएस आवेदन के लिए रेल / एक्सपोजिंग प्रमाणीकरण कस्टम सेल छवि तालिका दृश्य का संपादन करते समय बायीं तरफ पाली यूआईटेबलएव्यू में कई कटौतीक कोशिकाओं आईओएस ऐप से सीधे फेसबुक पर लॉग इन करें – फेसबुक एसडीके 3.1 Coredata का प्रबंधित ऑब्जेक्ट मॉडल बनाने के दौरान एप्लिकेशन को क्रैश हो गया एफ़नेटवर्किंग 3.0 के साथ URL बॉडी में JSON डेटा भेजें यूआईटीक्श्वेव में चयनित शब्द / पंक्ति के फ़ॉन्ट स्वरूपण बदलना UIView subclass में उपयोग किया गया CAShapeLayer काम नहीं करता आईओएस – UIButton पृष्ठभूमि रंग कोनों को केवल रंगों में सेट करना एसएएस यूआरएल से नीलामी ब्लॉब स्टोरेज पर अपलोड करने से 404 का स्टेटस वापस आता है आईफोन से समय क्षेत्र / देश प्राप्त करें

एक ही प्रतिनिधि पर एकाधिक UIActionSheets

मैं एक पहेली खेल लिख रहा हूँ जब उपयोगकर्ता चेक बटन को दबाता है, तो मैं देखता हूं कि जो समाधान उन्होंने दर्ज किया है वह सही है। परिणाम के आधार पर, मैं उनके लिए दो क्रिया पत्रों में से एक पेश करता हूं। अभी के लिए मुझे कुछ एनएसएलॉग विवरण दिए गए हैं ताकि सुनिश्चित किया जा सके कि चीजें बुला रही हैं, लेकिन केवल एक चादरें ठीक से काम करती हैं।

शोएरर्स एक्शन शीट में एक बटन पर क्लिक करने पर कुछ भी नहीं कहा जाता है ऐक्शन शीट स्क्रीन से गायब हो जाती है, लेकिन लॉग कभी प्रिंट नहीं होते हैं।

मुझे संदेह है कि इसके पास एक ही प्रतिनिधि (स्वयं) को दो कार्यपत्रकों को घोषित करने के लिए कुछ करना है

- (void) checkSolution { //code determines the value of the BOOL allCorrect if (allCorrect) { //IF ALL OF THE LETTERS WERE CORRECT //display UIAlertView; NSLog(@"allCorrect"); UIActionSheet *levelCompleteActionSheet = [[UIActionSheet alloc] initWithTitle:@"Congratulations! You Have Finished the Level!" delegate:self cancelButtonTitle:@"Review my work" destructiveButtonTitle:@"Choose next puzzle" otherButtonTitles:nil, nil]; [levelCompleteActionSheet showInView:self.view]; [levelCompleteActionSheet release]; } else { //[self showIncorrectLettersInRed]; UIActionSheet *showErrorsActionSheet = [[UIActionSheet alloc] initWithTitle:@"Sorry, thats not right. Show errors in red?" delegate:self cancelButtonTitle:@"No Thanks, I'll keep trying" destructiveButtonTitle:@"Yes please, I'm stuck!" otherButtonTitles:nil, nil]; [showErrorsActionSheet showInView:self.view]; [showErrorsActionSheet release]; } } 

विधियां जिन्हें कहा जाने वाला है:

 - (void) levelCompleteActionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { if (buttonIndex != [actionSheet cancelButtonIndex]) { NSLog(@"return to levelSelect"); //pushViewController:levelSelect } else { NSLog(@"continue to examine solution"); } } - (void) showErrorsActionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { if (buttonIndex != [actionSheet cancelButtonIndex]) { NSLog(@"show errors in red"); } else { NSLog(@"continue to try"); } } 

और Ive इंटरफ़ेस फ़ाइल में UIActionSheet प्रोटोकॉल घोषित किया है:

 @interface GamePlay : UIViewController <UIActionSheetDelegate> { 

Solutions Collecting From Web of "एक ही प्रतिनिधि पर एकाधिक UIActionSheets"

प्रत्येक एक्शन शीट के लिए एक टैग सेट करें, फिर यूआईएसीएफ़ेट प्रतिनिधि में switch स्टेटमेंट का उपयोग करें।

एक टैग असाइन करें

 - (void)checkSolution { if (allCorrect) { UIActionSheet *levelCompleteActionSheet = [[UIActionSheet alloc] initWithTitle:@"Congratulations! You Have Finished the Level!" delegate:self cancelButtonTitle:@"Review my work" destructiveButtonTitle:@"Choose next puzzle" otherButtonTitles:nil, nil]; [levelCompleteActionSheet setTag: 0]; [levelCompleteActionSheet showInView:self.view]; [levelCompleteActionSheet release]; } else { UIActionSheet *showErrorsActionSheet = [[UIActionSheet alloc] initWithTitle:@"Sorry, thats not right. Show errors in red?" delegate:self cancelButtonTitle:@"No Thanks, I'll keep trying" destructiveButtonTitle:@"Yes please, I'm stuck!" otherButtonTitles:nil, nil]; [showErrorsActionSheet setTag: 1]; [showErrorsActionSheet showInView:self.view]; [showErrorsActionSheet release]; } } 

यूआईएक्सशेट डेलागेट

 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { switch ( actionSheet.tag ) { case 0: /* levelCompleteActionSheet */ { switch ( buttonIndex ) { case 0: /* 1st button*/ break; case 1: /* 2nd button */ break; } } break; case 1: /* showErrorsActionSheet */ break; } } 

यह भी इस वर्ग में कहीं और भी लागू होगा, जिसमें levelCompleteActionSheet: और showErrorsActionSheet: :। फर्क सिर्फ इतना है, आपको प्रत्येक एक्शनशिप के लिए एक iVar बनाने की आवश्यकता होती है, जो कि उन्हें checkSolution में बनाने के बजाय

यूआईएसीएशेट द्वारा अपने प्रतिनिधि पर जो तरीकों को बुलाया जाएगा, वे यूआईएसीएशेटडिलेगेट प्रोटोकॉल में सूचीबद्ध तरीके हैं।

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIModalViewDelegate_Protocol/UIActionSheetDelegate/UIActionSheetDelegate.html

कॉल करने के लिए, आपकी पद्धति उन तरीकों में से एक होगी। मुझे उस प्रोटोकॉल में सूचीबद्ध levelCompleteActionSheet नहीं दिख रहा levelCompleteActionSheet या showErrorsActionSheet ! 🙂 आपकी पद्धति का नाम होना चाहिए actionSheet:clickedButtonAtIndex: किया गया actionSheet:clickedButtonAtIndex: और कुछ नाम नहीं जो आप पूरे कपड़े से बनाते हैं

टैग का उपयोग इस समस्या को हल करें

levelCompleteActionSheet.tag = 100;

showErrorsActionSheet.tag = 101;

 - (void) levelCompleteActionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { if(actionSheet.tag == 100){ // levelCompleteActionSheet implement your required function } else if(actionSheet.tag == 101){ // showErrorsActionSheet implement your required function } }