2016-02-28 59 views
1

我開發了一個沒有故事板的應用程序。如何在iOS中隨時隨地更改根視圖

我有註銷的功能。當用戶點擊註銷後,我必須將他重定向到登錄頁面並清除所有導航堆棧並在頁面根視圖中進行登錄。

我試圖用這個代碼,但使用這個我的應用程序崩潰:

SignUpVC *main = [[SignUpVC alloc]initWithNibName:@"SignUpVC" bundle:nil]; 

UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:main]; 

[self presentViewController:main animated:NO completion:nil]; 
+1

做什麼是消息錯誤? (我以前做過這個,在我的情況下,我在當前的NavigationController中做了一個 popToRootViewControllerAnimated) – UlyssesR

+0

如果我使用'popToRooTViewController',那麼它會帶我到當前的根目錄。我的新根目錄不起作用 – Dalvik

+1

使用setViewControllers,它將當前由導航控制器管理的視圖控制器替換爲指定的項目。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/#//apple_ref/occ/instm/UINavigationController/setViewControllers:animated: – UlyssesR

回答

1

要更改應用程序的根視圖中,您可以通過這種方式

SignUpVC *main = [[SignUpVC alloc]initWithNibName:@"SignUpVC" bundle:nil]; 
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:main]; 
[[UIApplication sharedApplication].keyWindow setRootViewController:navController];