iOS:UITabBarController - 项目视图的延迟加载

Cen*_*ion 5 lazy-loading objective-c uitabbarcontroller ios

我已经读过,对UITabBarController进行子类化是一种非推荐的做法.但是,如何实现延迟加载标签栏项目的视图?

我正在玩一个标准的应用程序视图层次结构:在我的主应用程序委托文件(application:didFinishLaunchingWithOptions :)中,我正在实例化一个UITabBarController的自定义子类,带有4个标签栏项目/图标.我只需要加载第一个标签栏项的第一个视图 - 其他视图应该根据请求延迟加载.所以,在application:didFinishLaunchingWithOptions:中,我正在加载欢迎视图并将其推送到第一个UINavigationController(1).其他标签栏项为空UINavigationControllers - (2,3,4).这是我的UITabBarController的自定义子类,也是他自己的删除:

@interface MainUITabBarController : UITabBarController <UITabBarControllerDelegate> {
}
@end

@implementation MainUITabBarController
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
   UIImageView *image = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBG.jpg"]] autorelease];
   UIViewController *vc = [self.viewControllers objectAtIndex:item.tag];
   vc.view = image;
}
@end
Run Code Online (Sandbox Code Playgroud)

目前,第二个标签栏项的视图只是一个UIViewController,但我很快就会成为UINavigationController :)

那么,回到问题,还有什么其他(更多苹果投诉)选项来实现延迟加载的标签栏项目操作处理?

REA*_*EE 5

如果我正确理解你的问题,默认情况下TabbarController在延迟模式下加载项目的视图.也就是说,除非您单击标签栏上的某个项目,否则它将不会被加载.

您可以通过在每个视图的viewdidload上放置日志来查看它,并查看它何时被调用.