美文网首页iOS倒计时
(转)iOS14 多级页面执行popToRoot方法造成tabb

(转)iOS14 多级页面执行popToRoot方法造成tabb

作者: 铁汁红豆 | 来源:发表于2021-10-19 16:57 被阅读0次

近期在项目中跳转两层以上页面执行popToRootViewControllerAnimated方法时,发现会造成底部tabbar隐藏

逐步打印页面层级结构发现,在A-B-C页面push跳转中,打印self.navigationController.viewControllers方法获取到的是正常的层级数组[A,B,C]

但在执行popToRootViewControllerAnimated后,正常情况下或iOS14以下版本中在root页面A页面打印层级数组应该是[A],[self.navigationController.childViewControllers indexOfObject:self]的index为0,这时为正确✅的情况,tabbar在root页面会正常显示;

但在ios14版本中在root页面A页面获取到的数组发成了错乱❌,变成了[C,A],index变为了1,由于根导航控制器中有做viewController.hidesBottomBarWhenPushed = YES;处理,会导致tabbar消失隐藏

寻找一众原因终于在苹果开发者论坛中看到了同样的执行popToRoot造成tabbar消失问题,发觉应该是官方错误,只能在根导航控制器中先做预处理🤷♀️🤷♀️🤷♀️

目前仅在iOS14版本发现此问题,其他版本尚无问题

解决方案

重写RootNavigationController的popToRootViewControllerAnimated方法

-(NSArray<__kindof UIViewController*>*)popToRootViewControllerAnimated:(BOOL)animated{

    if(self.viewControllers.count>1){

            self.topViewController.hidesBottomBarWhenPushed=NO;
      }

    return [superpopToRootViewControllerAnimated:animated];

}

相关文章

网友评论

    本文标题:(转)iOS14 多级页面执行popToRoot方法造成tabb

    本文链接:https://www.haomeiwen.com/subject/ftvaoltx.html