喃们都知道,UITabBarController作为ViewController容器的时候,TabBarController显示后,只会默认load TabBarController的第一个ViewController(或者selectedViewController)的View
只有在点击tabbar或者设置selectedViewController,selectedIndex时候,才会调用想用的ViewController的loadView与viewDidLoad。
不难理解,苹果做了一个self.view延迟加载。
最近遇到一个需求,要所有的TabBarController的viewControllers都要直接加载self.view,调用viewDidLoad等方法进行逻辑处理。
解决办法很简单,调用loadViewIfNeeded方法加载View,或者强制调用下loadView,访问viewControlle的view即可立即loadView。
    for(UIViewController *viewController in  _tabBarController.viewControllers){
        [viewController loadViewIfNeeded]; //ios9
//      __unused  UIView *view =  viewController.view;
    }