0

基本的に、アプリケーションを起動すると、タブビューコントローラーが表示され、最初のタブが表示され、最初のタブのみが読み込まれます。同時に、残りのViewControllerをプリロードしたいと思います。私はこの投稿を見つけました-すべてのTabBarビューをロードします

しかし、エラーが発生しています。タブバーコントローラーのメソッド[subcontroller view]を呼び出します。viewDidLoadストーリーボードを使用しています。問題は、エラーが発生することです-バンドルにNIBをロードできませんでした:'NSBundle'

私は何が欠けていますか?

編集:

もっと簡潔にしようと思います-タブバーには、4つの異なるタブに対応する4つのビューコントローラーがあります。ユーザーがタブを押すと、対応するViewControllerがロードされます。アプリを最初に起動すると、最初のViewControllerのみが読み込まれます。他のViewControllerはロードされず、ユーザーがタブをタップした後にロードされます。これらすべてのコントローラーをメモリにロードして、それらを使用して何かを実行できるようにします(画面には表示されません)。

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

私が理解しているように、他のすべてのビューをロードして、タップを押したときにランチする準備ができているように設定したいのです:)それが必要な場合は、それをロードしてバックグラウンドですべて構築し、ビューに追加できますが、非表示にする必要がありますu を押すまで、必要なビューを表示し、他のビューを非表示にします。

カスタムタブを作成すると、この回答が機能します:)

于 2012-10-08T12:34:53.717 に答える