我正在尝试更改我的应用程序的rootViewController,它完美地工作。然而,更改rootViewController后,我的导航控制器返回nil。因为这甚至我简单的代码推任何新的控制器self.navigationController.pushViewController不起作用。swift导航控制器在更改rootviewcontroller后返回nil
在此之前,我想解释为什么我想改变我的rootViewController。我已经登录页面(这是初始视图控制器),成功登录后,用户将被重定向到UITabBarController(3个选项卡)。现在我想将rootViewController更改为此UITabBarController,我使用以下代码成功完成了这项工作。
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let destVC = self.storyboard?.instantiateViewController(withIdentifier: "home_view")
let rootViewController = appDelegate.window?.rootViewController as! UINavigationController
appDelegate.window?.rootViewController = destVC
现在改变rootViewController后,我所有的3个标签和他们各自的视图控制器工作完美。但在我的一个视图控制器中,我有按钮,单击该按钮时,我想将新控制器推送给用户。现在我在这里面临着无返回导航视图控制器的问题。
let destVC = self.storyboard?.instantiateViewController(withIdentifier: "menu_items_view") as! MenuItems
self.navigationController?.pushViewController(destVC, animated: true)
当我使用上面的简单代码时,什么都不会发生。所有我能够调试的是我的self.navigationController返回零。任何人都可以解释我的流程中的错误?
您确定您的视图层次结构中甚至有导航控制器吗?它在我看来你已经删除并删除它。 –
@DanielT。是的,我的视图层次结构中有导航控制器。我添加了截图以向您展示。我正在尝试将根视图控制器更改为UITabBarController,这很好。正如你可以在蓝色按钮的2选项卡图片中看到的,当我尝试按下另一个控制器时,没有任何反应。 – BhumaJ