2012-10-22 15 views
6

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

उदाहरण के लिए: लॉगिन दृश्य नियंत्रक => मोडल व्यू कंट्रोलर => टैब बार नियंत्रक => एनवी नियंत्रक => नियंत्रक देखें => नियंत्रक देखें। मैं शीर्ष पर सबसे ज्यादा देखने वाले नियंत्रक से नीचे वापस जाना चाहता हूं।

संपादित करें: enter image description here

धन्यवाद: यहाँ दृश्य पदानुक्रम का एक चित्र है!

उत्तर

2

इस संभालने सब कुछ काम करना चाहिए नेविगेशन ढेर पर धकेल दिया गया था:

[self.navigationController popToRootViewControllerAnimated:YES]; 
+0

यह दिखाने के लिए एक चित्र के साथ अपडेट किया गया कि क्यों काम नहीं किया। –

+0

आह मैं देखता हूं, अच्छा चित्र। लॉगआउट पर अधिसूचना पोस्ट करने के लिए आपको NSNotificationCenter का भी उपयोग करना पड़ सकता है। आपका पहला मोडल व्यू कंट्रोलर अधिसूचना के लिए सुन सकता है और इसे प्राप्त होने पर खुद को खारिज कर सकता है। –

5

मुझे लगता है कि काम कर रहा है UIViewControllers के लिए एक वर्ग ने लिखा है:

- (void) popToInitialViewController 
{ 
    UIViewController *vc; 
    if (self.navigationController != nil) { 
     vc = self.navigationController; 
     [self.navigationController popToRootViewControllerAnimated:NO]; 
     [vc popToInitialViewController]; 
    } 
    else if (self.tabBarController != nil) { 
     vc = self.tabBarController; 
     [vc popToInitialViewController]; 
    } 
    else if (self.presentingViewController != nil) { 
     vc = self; 

     while (vc.presentingViewController != nil) 
      vc = vc.presentingViewController; 

     [vc dismissModalViewControllerAnimated:NO]; 

     [vc popToInitialViewController]; 
    } 
} 

टिप्पणियाँ की सराहना कर रहे हैं :)