6
我在iOS中使用故事板。第一個屏幕是登錄屏幕。當用戶註銷或註銷時,他可能在深層次的屏幕上。在退出時返回到初始故事板ViewController
例如:登錄視圖控制器=>模式視圖控制器=>標籤欄控制器=>導航控制器=>視圖控制器=>視圖控制器。我想從最頂層的視圖控制器回到最底層的視圖控制器。
編輯:這裏是視圖層次結構的示意圖:
謝謝!
我在iOS中使用故事板。第一個屏幕是登錄屏幕。當用戶註銷或註銷時,他可能在深層次的屏幕上。在退出時返回到初始故事板ViewController
例如:登錄視圖控制器=>模式視圖控制器=>標籤欄控制器=>導航控制器=>視圖控制器=>視圖控制器。我想從最頂層的視圖控制器回到最底層的視圖控制器。
編輯:這裏是視圖層次結構的示意圖:
謝謝!
這應該假定一切都推到導航堆棧:
[self.navigationController popToRootViewControllerAnimated:YES];
我寫了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];
}
}
評論被感激:)
用圖表更新以說明爲什麼沒有奏效。 –
啊我看,很好的圖。您可能還必須使用NSNotificationCenter在註銷時發佈通知。您的第一個模式視圖控制器可以監聽通知,並在收到通知時自行解除。 –