ios14 popToRootViewControllerAnimated 底部tabbar消失问题处理
解决方法是:
在UINavigationController 类重写以下方法:
-(NSArray<__kindof UIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated
{
if (animated) {
UIViewController *popController = self.viewControllers.lastObject;
popController.hidesBottomBarWhenPushed = NO;
}
return [super popToRootViewControllerAnimated:animated];
}
在basevc 中自定义 push 方法中修改:
- (void)dsPushViewController:(UIViewController*)vc animated:(BOOL)animated{
if (self.navigationController.viewControllers.count > 0) {
// 当前导航栏, 只有一个viewController push的时候设置隐藏
if (self.navigationController.viewControllers.count == 1) {
vc.hidesBottomBarWhenPushed = YES;
}
} else {
vc.hidesBottomBarWhenPushed = NO;
}
[self.navigationController pushViewController:vc animated:animated];
}