2013-04-18 6 views
29

पर नेविगेट करें मेरे पास UIView->UICollectionView->UICollectionViewCell है। मैं प्रोग्रामिक रूप से वापस नेविगेट करने की कोशिश कर रहा हूं लेकिन इनमें से कोई भी काम नहीं करता है। कोड कहा जाता था। मैं स्टोरीबोर्ड का उपयोग कर रहा हूं।पिछली बार नियंत्रक

- (void) goBack:(NSNotification *) notification { 
     // [self.navigationController popViewControllerAnimated:YES]; 
    // [self dismissViewControllerAnimated:YES completion:nil]; 
     [self.navigationController popToRootViewControllerAnimated:YES]; 
} 
+0

मुझे अपना बटन एक्शन कोड या अधिसूचना कोड दिखाएं? – Balu

+0

क्या आप स्वयं को प्राप्त कर रहे हैं। NavigationControlle आपकी कक्षा में शून्य नहीं है? इसे देखो। –

+0

[[NSNotificationCenter defaultCenter] postNotificationName: @ "goBack" ऑब्जेक्ट: nil]; – user1688346

उत्तर

83

आप प्रयोग करना होगा।

आप पिछले दृश्य नियंत्रक करने के लिए वापस नेविगेट करना चाहते हैं, तो आप को लागू करना चाहिए: रेखा से नीचे का उपयोग करके

[self.navigationController popViewControllerAnimated:YES]; 
+0

यह कोड मेरे लिए काम नहीं कर रहा है –

+0

क्या आपने यूएनविगेशन कंट्रोलर को रूट रूट कंट्रोलर के रूप में सेट किया है? यदि नहीं, तो यह काम नहीं करेगा। –

0
- (void) goBack:(NSNotification *) notification 
{ 
    if(!self.YOrView.isHidden) 
     self.YOrView.hidden = YES; 
} 
1

कोशिश करो ....

#import "bookdescriViewController.h" // import here your class name 

- (IBAction)backButton:(id)sender 
{ 
    bookdescriViewController *previosVC = [[bookdescriViewController alloc]init]; 
    [self.navigationController popViewControllerAnimated:YES]; // go to previous view controller 
    [self.navigationController popToRootViewControllerAnimated:YES]; // go to root view controller 
    [self.navigationController popToViewController:previosVC animated:YES]; // go to any view controller 
    [previosVC release]; 
} 
5

कैसा रहेगा ...

[self.navigationController dismissViewControllerAnimated:YES completion:NULL]; 

यह मानते हुए कि आप एक नेविगेशन आधारित नियंत्रक में वर्तमान में कर रहे हैं और आप चाहते थे नेविगेशन-आधारित नियंत्रक में आने से पहले पिछले नियंत्रक पर वापस जाएं।

[self.navigationController popToRootViewControllerAnimated:YES]; 

इससे आप वापस रूट दृश्य नियंत्रक करने के लिए लाना होगा:

17

हम जनक दृश्य नियंत्रक

[self.navigationController popViewControllerAnimated:YES]; 

पर जा सकते हैं रेखा से नीचे हम कर सकते हैं का उपयोग करके मुख्य/रूट दृश्य नियंत्रक पर जाएं

[self.navigationController popToRootViewControllerAnimated:YES]; 

नीचे पंक्ति का उपयोग करके हम किसी भी स्थान पर जा सकते हैं दृश्य नियंत्रक

[self.navigationController popToViewController:viewControllerObject animated:YES]; 
3

आसान कॉपी पेस्ट करने के लिए स्विफ्ट समाधान:

navigationController?.popViewControllerAnimated(true) 
0

जनक दृश्य नियंत्रक पर वापस जाएं और वर्तमान दृश्य नियंत्रक पूर्व dealloc:

- (void)applicationDidEnterBackground:(NSNotification *)notification 
{ 
    NSInteger numberOfViewControllers = self.navigationController.viewControllers.count; 

    UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:numberOfViewControllers - 2]; 

    [self.navigationController popToViewController:vc animated:NO]; 
} 

या कोई अन्य दृश्य नियंत्रक

1

स्विफ्ट 3 के साथ,

@IBAction func back(_ sender: UIButton) { 
    self.dismiss(animated: true, completion: nil)  
} 
संबंधित मुद्दे