zoukankan      html  css  js  c++  java
  • IOS window.rootViewController 切换原rootViewController无法释放(问题解决)

     先说一下问题吧,今天遇到了一个奇怪的问题。一个界面通过消息通知刷新数据,断点跑了2次,感觉很奇怪。通过和公司小伙伴沟通发现是由于退出登录后再登录进去后发现此问题。我首先想到的就是此功能界面没有释放,但是查看界面处理没有特殊操作。里面想到就是因为切换rootViewController的时候原rootViewController没有释放掉。查看了原 rootViewController界面A,在发现界面A并没有其他原因导致其有可能不被释放。

    立即想到了自己做的UIViewController 的扩展处理中有问题,把扩展去掉后释放正常。
    先附上我切换rootViewController 的代码如下(代码中忽略我的其他操作)

    +(void)setRootViewViewController:(UIViewController *)controller{
       UIWindow * window = [UIApplication sharedApplication].delegate.window;
       //清空root
       if (window.rootViewController){
           window.rootViewController = nil;
       }
       
       UINavigationController * navTabBar = [[UINavigationController alloc] initWithRootViewController:controller];
       window.rootViewController = navTabBar;
       system_titleStatusBarHeight   = [[UIApplication sharedApplication] statusBarFrame].size.height;
       system_titleViewHeight        = navTabBar.navigationBar.frame.size.height + system_titleStatusBarHeight;
       controller.automaticallyAdjustsScrollViewInsets = NO;
       if ([controller isKindOfClass:[UITabBarController class]]) {
           system_tabbarHeight = ((UITabBarController *)controller).tabBar.frame.size.height;
       }
       [JLBRouter manager].navigationVC = navTabBar;
    }

    在分析扩展代码中并没有发现导致没有释放的原因是我调用了
    self.navigationController.presentationController 。
    什么鬼东西,这也都可以????

    在这里插入图片描述
    在这里做一个记录吧,希望给大家一个提示。

  • 相关阅读:
    不同数据库中两列字段相减(某列有空值)
    ASP.Net MVC利用NPOI导入导出Excel
    ASP.Net MVC中数据库数据导出Excel,供HTTP下载(转)
    Asp.net操作Excel(终极方法NPOI)(转)
    开发中可能会用到的几个 jQuery 小提示和技巧(转)
    最火的.NET开源项目(转)
    sql行转列和列转行(转)
    run fsck manually
    RTP-实时协议
    linux环境几个特殊的shell变量
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/13280978.html
Copyright © 2011-2022 走看看