2017-06-29 109 views
1

我有一个标签栏控制器作为我的故事板中的初始视图控制器(带箭头)。但是,当用户第一次登录时,我试图通过编程方式在didFinishLaunchingWithOptions:中更改初始视图控制器,以便从导航控制器开始通过一对VC来输入注册信息(我不想要一个标签酒吧为此)。尽管我正在更改应用程序委托中的初始VC,但我遇到了Could not cast value of type 'UITabBarController' (0x1031374f8) to 'UINavigationController' (0x1031374a8).的崩溃我的印象是最初的VC将会改变,而且根本不参考Tab Bar Controller?有没有一种方法可以在没有引用Tab Bar Controller的情况下完成初始VC的更改?这里是我的代码didFinishLaunchingWithOptions:,任何帮助非常感谢!设置带有标签栏和导航栏的初始视图控制器

if User.current() == nil { 
    let storyboard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let navigationControllerr:UINavigationController = storyboard.instantiateInitialViewController() as! UINavigationController 
    let initialViewController = storyboard.instantiateViewController(withIdentifier: "SplashPageVC") 
    navigationControllerr.viewControllers = [initialViewController] 
    self.window?.rootViewController = navigationControllerr 
    } 
+0

只需使用appDelegate中的简单检查,如果登录信息的值不是零导航到tabbar否则导航到登录屏幕 –

回答

1

为什么不尝试这样的事情。

if User.current() == nil { 
    let initialViewController = storyboard.instantiateViewController(withIdentifier: "SplashPageVC") 
    let navigationController = UINavigationController(rootViewController: initialViewController) 
    self.window?.rootViewController = navigationControllerr 
    } 
相关问题