2012-10-08 17 views
0

基本上,当我开始我的应用程序时,我显示选项卡视图控制器,它显示第一个选项卡,并只加载第一个选项卡。我想同时预加载视图控制器的其余部分。我发现这篇文章 - Load All TabBar Views如何在应用程序启动时加载所有选项卡视图控制器?

但我得到错误。我打电话[subcontroller view]viewDidLoad标签栏控制器的方法。我正在使用故事板。问题是我得到错误 - 无法加载捆绑NIB:'NSBundle'

我在想什么?

编辑:

我将设法更简洁 - 的TabBar有4个视图控制器,对应于4个不同的标签。当用户按下标签时,相应的视图控制器被加载。当你第一次启动应用程序时,只有第一个视图控制器被加载。其他视图控制器未加载,它们在用户点击其选项卡后加载。我希望所有这些控制器都加载到内存中,这样我就可以对它们执行某些操作(它们不显示在屏幕上)。

+0

没有得到ü...要查看所有tabbars立即?或者加载它们?但为什么 ?请详细说明... – IronManGill

回答

-2

就像我明白你想加载所有其他视图,并设置它准备午餐时,当你按下水龙头:) 如果你想要你可以加载它,并在后台构建它,并将其添加到视图中但你需要隐藏它,直到你按下你显示你想要的视图并隐藏其他视图。

这个答案工作如果u建立自己的自定义选项卡:)

0

//加载所有视图控制器appdelegate.h文件中项目

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
ViewController1 *view1=[[ViewController1 alloc]initWithNibName:nil bundle:nil ]; 
view1.tabBarItem.image = [UIImage imageNamed:@"1.jpg"]; 
UINavigationController *navi1=[[UINavigationController alloc]initWithRootViewController:view1]; 

ViewController2 *view2=[[ViewController2 alloc]initWithNibName:nil bundle:nil ]; 
view1.tabBarItem.image = [UIImage imageNamed:@"1.jpg"]; 
UINavigationController *navi2=[[UINavigationController alloc]initWithRootViewController:view2]; 
    NSArray *navi= [[NSArray alloc]initWithObjects:navi1,navi2,navi3,navi4,nil]; 

UITabBarController * bar=[[UITabBarController alloc]init]; 
NSArray *navi= [[NSArray alloc]initWithObjects:view1,view2,nil]; 
bar.viewControllers=navi; 
[self.bar setViewControllers:navi animated:YES]; 
self.window.rootViewController=self.bar; 
[self.window addSubview:bar.view]; 
    [self.window makeKeyAndVisible]; 
    return YES; 

} 

} 
相关问题