2012-05-30 13 views
8

Gezinme denetleyicisini iki kez bırakmak mümkün mü? Bu navigasyon yapısı vardır:UINavigationController'ı iki kez pop etmek mümkün mü?

Görünüm One ----> Görünüm İki -----> Görünüm ben başarmak istiyorum ne Üç

olduğunu Görünüm Üç üst üste dokunarak tarafından, Doğrudan View One'a dönün. Protokol-delege ile Üç'den İkiye kadar yaptım, ama Delege'i bir bakışta ayarlamıyor ve ikisi de arka arkaya iki delege protokolünü ayarlayarak hem navigasyon denetleyicisini açıyor, hem de hata veriyor: iç içe gezinme denetleyicisi faaliyeti (veya benzer bir şey).

Herhangi bir yardım

mutluluk duyacağız. Şimdiden teşekkürler!

cevap

32

birkaç pop seçenekleri

- (UIViewController *)popViewControllerAnimated:(BOOL)animated 
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated 
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated 
  • ilk üst kontrolör çıkar yoktur.
  • İkincisi, köke ulaşmak için tüm yığını kapatmanızı sağlar.
  • Üçüncüsü, başvuruda bulunduğunuz herhangi bir viewController'a izin vermenizi sağlar. Sen self.navigationController.viewControllers ile viewController almak ve sonra
+1

Teşekkürler, bir çekicilik gibi çalışır! – Marcal

4

'öz' olarak pop istediğiniz belirli viewController almak için dizi çalışabilirsiniz ilk pop sonra serbest gibi görünüyor

UINavigationController *navigationController = self.navigationController; 
[navigationController popViewControllerAnimated:NO]; 
[navigationController popViewControllerAnimated:YES]; 
10

şu kodu kullanın . İhtiyacınıza bağlı olarak -3 yerine herhangi bir sayıyı kullanabilirsiniz.

kodu:?

ViewController *View = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-3]; 
    [self.navigationController popToViewController:View animated:YES]; 

Swift 3,0 *

let kontrolörü = self.navigationController .viewControllers [(self.navigationController .viewControllers.count?)! - 3]

 self.navigationController?.popToViewController(controller!, animated: true) 
+2

Daha iyi cevap. ! – Xeieshan

8

Bu

[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:1] animated:YES]; 

o yardımcı olur Umut deneyebilirsiniz !!