2016-01-21 246 views
1

我在組織我的應用程序的註冊/登錄流程時遇到問題。我目前有應用程序的故事板入口點指向導航控制器。在AppDelegate.m如果用戶沒有記錄有:多個導航控制器

SignUpViewController *signUpViewController = [[SignUpViewController alloc] init]; 
    self.navController = [[UINavigationController alloc] initWithRootViewController:signUpViewController]; 
    self.window.rootViewController = self.navController; 
    [self.window makeKeyAndVisible]; 

這就造成了「簽署」導航控制器。

我試圖彈出這個SignUpViewController以及導航控制器以進入應用程序的初始屏幕(最初在故事板中指向的導航控制器),但我沒有取得任何成功。

+0

你嘗試過通過該代碼去除'SignUpViewController' '[signUpViewController.view removeFromSuperview];' – SeraZheng

回答

1

當您使用故事板(因此有一個有初始視圖控制器)什麼的iOS爲你做的是設置window.rootViewController,使其與本初始視圖控制器標誌視圖控制器。

在你的代碼是更換用於嵌入UINavigationControllerSignUpViewController根視圖控制器,這就是爲什麼你不能真正從中彈出是因爲沒有其他視圖控制器以前在堆棧中。

一種解決方案可能是在第一個視圖控制器上添加一個邏輯,用於識別用戶是否已登錄,如果不是您推送(或者以模態方式呈現)SignUpViewController。我希望有所幫助。

1

您已經將self.navController設置爲窗口的rootViewController。爲了能夠完成你想要的任務,你可以執行以下其中一項操作:

  • 以編程方式將最初指向故事板中的導航控制器設置爲rootViewController。然後將SignupViewController作爲模式呈現。

  • 當前從在故事板初始視圖控制器,而不是在應用程序委託的SignupViewController(作爲模態)