2012-04-18 25 views
6

मैं तीन ViewControllerआईओएस:

प्रथम, द्वितीय और तृतीय

दूसरा से

खोलने के लिए तीसरा है मैं उपयोग

Third *third = [[Third alloc]initWithNibName:@"Third" bundle:nil]; 
[self presentModalViewController:third animated:YES]; 
[third release]; 

अब मैं पहले तीसरे से करने के लिए वापस चाहते खारिज दो ViewController;

[self dismissModalViewControllerAnimated:NO]; 

लेकिन 1 सेकंड मैं देख रहा हूँ दूसरा और मैं इसे देखना नहीं चाहते हैं के लिए ... मैं कैसे कर सकते हैं: तो मैं दूसरा इस कोड में viewDidAppear में सेट?

+1

पहले दृश्य में दूसरा दृश्य कैसे जोड़ा जाता है? –

उत्तर

15

आपको पहले तीसरे व्यू कंट्रोलर को खारिज करने की आवश्यकता है और फिर दूसरा व्यू कंट्रोलर। जब आप पहली बार नियंत्रक जाना चाहते हैं तो निम्न कोड करें।

-(void)goToFirstView{ 
     UIViewController *vc = [self parentViewController]; 
    //  UIViewController *vc = [self presentingViewController]; //ios 5 or later 
     [self dismissModalViewControllerAnimated:NO]; 
     [vc dismissModalViewControllerAnimated:YES]; 
} 
4

तीसरा मोडल दृश्य पहली जगह कैसे खारिज किया जा रहा है? शायद उपयोगकर्ता द्वारा 'संपन्न' बटन को छूने वाला? यदि ऐसा है, तो यह उस बटन के हैंडलर में है जिसे आप दोनों को खारिज करना चाहते हैं।

आप दोनों के रूप में खारिज कर सकते हैं: के रूप में यह लगता है कि आप इसे खारिज दृश्य दिखाई देता है इसलिए जितनी जल्दी और यह गायब हो जाता है इससे पहले कि

[self dismissModalViewControllerAnimated: YES]; 
[self.presentingViewController dismissModalViewControllerAnimated: NO]; 
+0

मुझे लगता है कि ** एनिमेटेड ** पैरामीटर अभी नहीं होना चाहिए, राकेशन्स का जवाब देखें – onmyway133

0

यह viewDidAppear coz होता है कहा जाता है हर ..

मुझे नहीं पता सोचें कि आप क्या करने की कोशिश कर रहे हैं modalViewControllers के साथ प्राप्त किया जा सकता है ... इसके बजाय नेविगेशन नियंत्रक का उपयोग करें और अपने व्यू कंट्रोलर को स्टैक पर जोड़ते रहें और जब आप पहली बार कंट्रोलर प्राप्त करना चाहते हैं तो बस

[self.navigationController popToRootViewControllerAnimated:YES];  
पर कॉल करें

EDIT:

बस इसे इस के बारे में सोचा प्रतिनिधिमंडल का उपयोग करके प्राप्त किया जा सकता है .. आप दूसरे तीसरे के प्रतिनिधि बनाने के लिए और जैसे ही आप को खारिज thirdviecontroller प्रतिनिधि एक message.In इस संदेश को कॉल [self dismissModalViewControllerAnimated:NO]; भेजें। और आप कर चुके हैं .. (अगर आप प्रतिनिधिमंडल जानते हैं तो बहुत आसान है।)