0

基本上,当我启动我的应用程序时,我会显示选项卡视图控制器,它会显示第一个选项卡,并且只加载第一个选项卡。我想同时预加载其余的视图控制器。我找到了这篇文章 -加载所有 TabBar 视图

但我收到错误。我调用标签栏控制器[subcontroller view]viewDidLoad方法。我正在使用故事板。问题是我收到错误 - 无法在包中加载 NIB:'NSBundle'

我错过了什么?

编辑:

我会尽量简洁——Tabbar 有 4 个视图控制器,对应 4 个不同的选项卡。当用户按下选项卡时,会加载相应的视图控制器。首次启动应用程序时,仅加载第一个视图控制器。其他视图控制器未加载,它们在用户点击其选项卡后加载。我希望所有这些控制器都加载到内存中,以便我可以对它们做一些事情(它们没有显示在屏幕上)。

4

2 回答 2

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;

}

}
于 2012-10-08T13:25:57.740 回答
-2

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

如果您构建自定义选项卡,此答案将起作用:)

于 2012-10-08T12:34:53.717 回答