UITabBarController作为ViewController容器的时候,TabBarController显示后,只会默认load TabBarController的第一个ViewController(或者selectedViewController)的View,只有在点击tabbar或者设置selectedViewController,selectedIndex时候,才会调用想用的ViewController的loadView与viewDidLoad。
当项目遇到某个tabbar下需要预加载提升体验的时候,就需要进行相关处理。
首先在tabbarcontroller下获取到要预加载的vc
for(UINavigationController *nav in self.viewControllers){
if ([self.viewControllers indexOfObject:nav] == 2) { // 指定需要加载的vc
UIViewController *viewController = nav.viewControllers.firstObject;
[viewController loadViewIfNeeded]; // 让其调用viewdidload
// __unused UIView *view = nav.view;
}
}
这样打开想应的tabbar就会发现页面已加载完成