我有2个视图控制器,然后标签栏控制器连接到3个导航控制器,每个导航连接到多个视图。 从其中一个连接到其中一个导航控制器的视图,我想再次回到开始屏幕,这两行很好:
let loginViewController = self.storyboard?.instantiateViewController(withIdentifier: "LoginViewController")
UIApplication.shared.keyWindow?.rootViewController = loginViewController
但是在我这样做并希望再次导航到标签栏后,它从视图中消失了。我用它来导航到标签栏:
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let viewTabController = self.storyboard?.instantiateViewController(withIdentifier :"MainTabBarController") as! MainTabBarController
viewTabController.selectedIndex = 1
appDelegate.window?.rootViewController = viewTabController
提前致谢。
答案 0 :(得分:0)
当您使用instantiateViewController
时,您正在内存中创建视图控制器的新实例,而在您的情况下不需要,您之前已创建它们。所以你可以解散你的tabBar
并返回到这样的第一个屏幕(初始viewcontroller
必须嵌入到导航控制器中):
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let navigationController = appDelegate.window?.rootViewController as! UINavigationController
navigationController.dismiss(animated: true, completion: nil)
要返回tabBar
,您可以将其实例保存在您的应用代理中并展示它,或使用storyboard segue以模态方式呈现它
:)