参考自:https://developer.apple.com/forums/thread/660750
环境:Xcode12.4 / 手机系统iOS14
三个控制器(UIViewController):
Controller_A
Controller_B
Controller_C
A->B->C
从A是根控制器,底部有tabbar 。B、C都没有tabbar
操作流程
A push B,B push C
, 然后从C直接popToRootViewController
到A
问题:
发现在iOS14上 A
的Tabbar消失了
用其他老系统的测试机相同操作,A正常显示Tabbar;
解决方法:
方法一:
在使用popToRootViewController方法的地方加上
self.tabBarController.tabBar.hidden = NO;
self.tabBarController.tabBar.hidden = NO;
[self.navigationController popToRootViewControllerAnimated:YES];
方法二:
在自定义个NavigationController里重写如下方法
-(NSArray<__kindof UIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated {
if (self.viewControllers.count > 1) {
self.topViewController.hidesBottomBarWhenPushed = NO;
}
NSArray<UIViewController *> *viewControllers = [super popToRootViewControllerAnimated:animated];
// self.viewControllers has two items here on iOS14
return viewControllers;
}
网友评论