2013-04-18 22 views
29

UIView->UICollectionView->UICollectionViewCell var. Programlı olarak geri gitmeye çalışıyorum ama bu çalışmaların hiçbiri. Kod aradı. StoryBoard kullanıyorum.Gezin Önceki görünüm denetleyicisine geri dön

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

Düğme eylem kodu veya bildirim kodunu göster bana? – Balu

+0

Sınıfınızda sıfır olarak değil, self.navigationControlle alıyor musunuz? Şuna göz at. –

+0

[[NSNotificationCenter defaultCenter] postNotificationName: @ "goBack" nesnesi: nil]; – user1688346

cevap

83

Sen kullanmak gerekir. Önceki görünüm kontrolöre geri gitmek istiyorsanız

, uygulamak gerekir:

[self.navigationController popViewControllerAnimated:YES]; 
+0

bu kod benim için çalışmıyor –

+0

UINavigationController'ı rootViewController olarak ayarladınız mı? Değilse, o zaman işe yaramaz. –

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

Deneyin ....

#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

Mesela ...

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

bir navigasyon tabanlı denetleyici şu anda varsayarsak ve istediği Gezinme tabanlı denetleyiciye geçmeden önce önceki denetleyiciye geri dönün.

[self.navigationController popToRootViewControllerAnimated:YES]; 

Bu geri kök görünümü denetleyicisi getirecektir:

17

sınırının altında kullanarak biz ana görünümü denetleyicisi

[self.navigationController popViewControllerAnimated:YES]; 

gidebilir biz sınırının altında kullanarak ana/köke görünüm denetleyicisine gitme

Aşağıdaki satırı kullanarak herhangi bir görünümü kontrolörü

[self.navigationController popToViewController:viewControllerObject animated:YES]; 
kolay kopya yapıştırmak için
3

Swift çözümleri:

navigationController?.popViewControllerAnimated(true) 
0

ana görünümü denetleyicisi geri dönün ve geçerli görünüm denetleyicisi ex 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]; 
} 

veya başka bir görünüm denetleyicisi

1

swift3 ile,

@IBAction func back(_ sender: UIButton) { 
    self.dismiss(animated: true, completion: nil)  
} 
İlgili konular