[英]Popping out storyboard and moving back to previous viewcontroller (nib)
[英]Going back to initial storyboard ViewController on logout
我在我的 iOS 中使用故事板。 第一個屏幕是登錄屏幕。 當用戶登出或被登出時,他可能在一個深層次的屏幕上。
例如:登錄視圖控制器 => 模態視圖控制器 => 標簽欄控制器 => 導航控制器 => 視圖控制器 => 視圖控制器。 我想從最頂部的視圖控制器一直返回到底部的視圖控制器。
編輯:這是視圖層次結構圖:
謝謝!
我為 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];
}
}
評論表示贊賞:)
假設所有內容都被推送到導航堆棧上,這應該可以工作:
[self.navigationController popToRootViewControllerAnimated:YES];
就我而言,我直接設置窗口的rootViewController如下:
func popToInitialScreen() {
let window = UIApplication.shared.keyWindow
window.rootViewController = nil
window.rootViewController = // init your initial view controller
window.makeKeyAndVisible()
}
PS keyWindow 在 iOS 13 中已棄用,不應用於支持多個場景的應用程序,因為它會在所有連接的場景中返回一個關鍵窗口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.