2012-10-22 21 views
6

iOS'umdaki storyboard'ları kullanıyorum. İlk ekran giriş ekranıdır. Bir kullanıcı oturumu kapattığında veya çıkış yaptığında, derin bir hiyerarşi içinde bir ekranda olabilir.İlk film şeridine geri dön ViewController oturum kapatmada

Örneğin: login view controller => modal görünüm denetleyicisi => tab çubuğu denetleyicisi => nav controller => view controller => denetleyiciyi görüntüle. En üstteki görüntü denetleyicisinden en alt seviyeye kadar geri gitmek istiyorum.

Düzenleme: enter image description here

Teşekkür: İşte görünüm hiyerarşi şeması var!

cevap

2

bu varsayarak her şeyi çalışması gerekir navigasyon yığını üzerine itildi:

- (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]; 
    } 
} 

Yorumlar takdir edilmektedir :)

+0

: Ben çalışıyor gibi görünüyor UIViewControllers için bir kategori yazdım

[self.navigationController popToRootViewControllerAnimated:YES]; 

+0

ah görüyorum, güzel diyagram. Oturum kapatma hakkında bir bildirim göndermek için NSNotificationCenter'ı da kullanmanız gerekebilir. İlk model denetleyiciniz, bildirimi dinleyebilir ve aldığında kendisini kapatabilir. –

5

Neden çalışmadığını göstermek için bir şema ile güncellendi.
İlgili konular