2013-01-17 27 views
6

मेरे पास स्टोरीबोर्ड का उपयोग कर एक एप्लिकेशन है। एक दृश्य पर एक AlertViewDialog है।ओपन स्टोरीबोर्ड मैन्युअल रूप से देखें

जब उपयोगकर्ता पहले बटन ("हां") पर क्लिक करता है, तो मैं स्टोरीबोर्ड पर एक और दृश्य कैसे खोल सकता हूं?

उत्तर

10

इस मदद कर सकते हो मेरे:

  1. खींचें फिर में एक दृश्य पहचान निरीक्षक के पास जाओ (शॉर्टकट: विकल्प + सेब + 3)।
  2. नए ड्रैग किए गए व्यू का चयन करें और स्टोरीबोर्ड आईडी शीर्षक में इंस्पेक्टर की पहचान से अद्वितीय नाम दें। // संदर्भ enter image description here

SecondViewController वर्ग बनाने (ज & मीटर) ViewController के उपवर्ग के लिए छवि देखते हैं।

तो

चेतावनी दृश्य कोड से (के रूप में आप ने कहा कि जब हाँ क्लिक किया जाता है)

कोड नीचे

SecondViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"vinay"]; 
     [svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; 
     [self presentViewController:svc animated:YES completion:nil]; 

उल्लेख पेस्ट मुझे पता है अगर किसी भी मुद्दे होते हैं करते हैं।

+0

धन्यवाद! यह काम करता हैं! –

+0

आपका स्वागत है और मेरी पोस्ट पसंद करने के लिए धन्यवाद :) –

5

मई इस मदद करता है:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
ClassNameViewController *viewController = (ClassNameViewController *)[storyboard instantiateViewControllerWithIdentifier:@"viewIdentifierOnStoryboard"]; 
[self presentModalViewController:viewController animated:NO]; 
+0

बहुत बुरा, काम नहीं करता है। कुछ भी नहीं होता ... –

+0

क्या आपने अपने विचार पर पहचानकर्ता सेट किया है और उसी स्टोरीबोर्ड नाम का उपयोग किया है? – Tchelow

+0

मैंने स्टोरीबोर्ड आईडी को 'eerstekeer' पर सेट किया है। "स्टोरीबोर्ड आईडी का उपयोग करें", स्टार्टअप आयात करें।एच (क्लासनाम) और इस कोड का इस्तेमाल किया: यूआईएसटीरीबोर्ड * स्टोरीबोर्ड = [यूआईएसटीरीबोर्ड स्टोरीबोर्ड विथनाम: @ "मेनस्टोरीबोर्ड" बंडल: शून्य]; स्टार्टअप * व्यू कंट्रोलर = (स्टार्टअप *) [स्टोरीबोर्ड इंस्टेंटिएट व्यू कंट्रोलरविथ इंडेंटिफायर: @ "ईरस्टेकर"]; –

0

पहली बात करने की ज़रूरत है यह आपकी @interface तो यह

 @interface myClass : super <UIAlertViewDelegate> 
      // super could be anything like `UIViewController`, etc 
     @end 

की तरह और में लग रहा है के लिए UIAlertViewDelegate जोड़ने करने के लिए UIAlertView प्रतिनिधि सेट कर दिया जाता @implementation आप तो कुछ

 @implementation myClass 

     ........... Some code 


     - (IBAction)someActionMethod:(id)sender 
     { 
      UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:nil 
                    message:@"Would you like to move on?" 
                   delegate:self 
                 cancelButtonTitle:@"No" 
                 otherButtonTitles:@"Yes", nil]; 
      [myAlertView show]; 
      // [myAlertView release]; Only if you aren't using ARC 
     } 

     - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
     { 
       switch(buttonIndex) { 
        case 1: 
          SecondViewController *svc =[self.storyboard instantiateViewControllerWithIdentifier:@"secondViewController"]; 
          [svc setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; 
     // [self presentViewController:svc animated:YES]; // Deprecated in iOS 6.0 
          [self presentViewController:svc animated:YES completion:nil]; // Introduced in iOS 5.0 
          break; 
        default: 
          break; 
       } 
     } 

     @end 
की तरह जोड़ा जा सकता

स्टोरीबोर्ड में अद्वितीय पहचानकर्ता सेट करना याद रखें। आप इसे .storyboard पर जाकर और पहचान निरीक्षक (तीसरे में से चुनकर) में जाकर कर सकते हैं, आप Storyboard ID सेट कर सकते हैं, यह आपको instantiateViewControllerWithIdentifier में मेल खाने की आवश्यकता होगी, इसलिए ऊपर दिए गए मामले में यह "secondViewController" होगा। यह इतना आसान है।

इस दृश्य को खारिज करने के लिए याद रखें जब आप पूरा कर आप

 [self dismissModalViewControllerAnimated:YES]; 

ऊपर वास्तव में आईओएस 6.0 में पदावनत किया गया है का उपयोग करने की आवश्यकता होगी, लेकिन आप

 [self dismissModalViewControllerAnimated:YES completion:nil]; 

कौन सा एक ही बात करता है का उपयोग कर सकते सिवाय इसके कि अंत में एक समापन ब्लॉक जोड़ता है।

उम्मीद है कि इससे मदद मिलती है।