首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改rootViewController导致奇怪的行为

更改rootViewController导致奇怪的行为
EN

Stack Overflow用户
提问于 2017-05-16 20:01:33
回答 1查看 243关注 0票数 0

我在我的应用程序中像这样设置rootViewController。

代码语言:javascript
复制
func setupMainView() {
    let rootViewContorller = window?.rootViewController

    if (rootViewContorller?.presentedViewController != nil || rootViewContorller?.presentingViewController != nil) {
        rootViewContorller?.dismiss(animated: false, completion: nil)
    }

    let tabbarController = UITabBarController()
    tabbarController.delegate = self

    let homeViewController = HomeViewController()
    let rewardsViewController = RewardsViewController()

    let homeNVc = UINavigationController()
    let rewardsNVc = UINavigationController()

    homeNVc.viewControllers = [homeViewController]
    rewardsNVc.viewControllers = [rewardsViewController]

    tabbarController.viewControllers = []

    tabbarController.viewControllers = [homeNVc, rewardsNVc]
    tabbarController.selectedIndex = 0

    self.window?.rootViewController = tabbarController
}

它工作得很好。但我必须在应用程序中更改rootViewController,如注册后等。之后,当我去Debug View Hierarchy。我仍然在那里看到了registrationViewController。比方说,如果我改变rootViewController 3-4次,所有以前的控制器仍然存在。因此,我的问题是,如何在更改viewControllers之前从内存中删除所有rootViewController。

EN

回答 1

Stack Overflow用户

发布于 2017-05-16 20:26:01

你可以调用这个函数,它将清除所有的视图控制器。

代码语言:javascript
复制
self.window?.rootViewController?.dismissViewControllerAnimated(false, completion: nil)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44000906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档