【发布时间】:2018-02-27 08:08:19
【问题描述】:
如您所见,我有一个带有标签的初始视图控制器“初始视图控制器”。在这个视图控制器中,我使用下面的代码转到 Tab Bar Controller
的选定选项卡let vc1 = sb.instantiateViewController(withIdentifier: "tabbar") as! UITabBarController
vc1.selectedIndex = selected
let controllers = [vc1]
navigationController!.setViewControllers(controllers, animated: true)
在我的第一个视图中,有一个按钮“Present VC”,它显示了“Presented View”。
let vc1 = sb.instantiateViewController(withIdentifier: "PresentedVC") as! PresentedVC
present(vc1, animated: true, completion: nil)
现在我想从提供的 vc 回到根 vc(初始视图控制器)。我可以这样做:
let viewController = self.storyboard?.instantiateViewController(withIdentifier: "FirstNavigationController") as! FirstNavigationController
UIApplication.shared.keyWindow?.rootViewController = viewController
但是每次都会实例化初始视图控制器,并且视图保留在内存中。如何在不实例化的情况下返回初始视图控制器?
PS: FirstNavigationController 是初始导航控制器。
【问题讨论】:
-
使用回调委托
-
并使用 navigationcontroller.popToRootViewControllrt()
-
@SPatel 我在我的第一个视图中甚至使用了 navigationcontroller.popToRootViewControllrt() 并且它不会进入 InitialVC
-
@Hos Ap 如果你去以前的视图控制器使用 popViewControllerAnimated 或者如果你想去根视图控制器使用 popToRootViewController。如果你有多个,你还有一个选项,就是将所有视图控制器添加到数组并使用 popViewController:animated
标签: ios swift uitabbarcontroller