返回
iOS14系统多级返回tabbar消失问题解决办法
IOS
2023-09-06 11:05:26
iOS14系统在跳转多级页面后返回到根控制器时tabbar消失了,这个问题引起了很多开发者的关注。经过排查,我们发现触发条件如下:
- Xcode Version >=12.0。
- ios Version >=14.0。
- 在跳转多级页面时,使用UINavigationController的popToRootViewControllerAnimated方法进行返回操作。
为了解决这个问题,我们可以采用以下几种方法:
- 将Xcode Version降级到11.x版本。
- 将ios Version降级到13.x版本。
- 在跳转多级页面时,使用UINavigationController的popToViewController:animated:方法进行返回操作,并在该方法中指定要返回的控制器为UITabBarController。
- 使用第三方库来实现多级页面的跳转和返回操作,例如:JLRoutes、UIViewController-Navigation。
下面我们以第四种方法为例,详细介绍如何解决这个问题。
首先,我们需要在项目中集成第三方库UIViewController-Navigation。我们可以通过CocoaPods来进行集成,在Podfile文件中添加如下代码:
pod 'UIViewController-Navigation'
然后,我们就可以在代码中使用UIViewController-Navigation库来实现多级页面的跳转和返回操作。例如,我们可以使用如下代码来实现跳转到某个控制器:
[self.navigationController pushViewController:viewController animated:YES];
我们可以使用如下代码来实现返回到上一个控制器:
[self.navigationController popViewControllerAnimated:YES];
我们可以使用如下代码来实现返回到根控制器:
[self.navigationController popToRootViewControllerAnimated:YES];
需要注意的是,在使用UIViewController-Navigation库时,我们需要在控制器中实现如下方法:
- (UIViewController *)topViewController;
该方法返回当前控制器的最上层控制器。
以上就是iOS14系统在跳转多级页面后返回到根控制器时tabbar消失问题的解决办法。希望本文能够对大家有所帮助。