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 。
    什么鬼东西,这也都可以????

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

  • 相关阅读:
    快速整理sql表结构到wiki
    mac subline批量处理行
    iphone7忘记手机屏幕密码
    docker 常用命令
    初窥响应式布局
    用jquery写的一个图片轮播插件
    javascript中的对象和创建对象的主要模式
    用户注册界面(带js特效)
    用javascript实现简易留言板
    用javascript实现的购物车实例
  • 原文地址:https://www.cnblogs.com/Im-Victor/p/13280978.html
Copyright © 2011-2022 走看看