2012-05-03 17 views
3

初めてのiPhoneアプリを作るのに苦労して、Appleの例にはタブバーやナビゲーションバーがあるが、どちらもそうではないことに気づいた。タブバとナビゲーションコントローラを備えたiOSアプリ

これは可能ですか?

ここでは3つのボタンがあるタブバーがあります。どのようにしてアプリケーション全体にナビゲーションコントローラを追加できますか?

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

UIViewController *activityViewController = [[[ActivityViewController alloc] initWithNibName:@"ActivityViewController" bundle:nil] autorelease]; 
UIViewController *agendaViewController = [[[AgendaViewController alloc] initWithNibName:@"AgendaViewController" bundle:nil] autorelease]; 
UIViewController *settingsViewController = [[[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:nil] autorelease]; 

self.tabBarController = [[[UITabBarController alloc] init] autorelease]; 
self.tabBarController.viewControllers = [NSArray arrayWithObjects:activityViewController, agendaViewController, settingsViewController, nil]; 
self.window.rootViewController = self.tabBarController; 
[self.window makeKeyAndVisible]; 

EDIT:私のappdelegateに私はnavigationControllerを作成していることを使用して、私は本当に、次はないよ

rootViewControllerとして。

私はその後、ナビゲーションコントローラは

がサポートされていないプッシュ「

をtabBarControllerを作成し、私の窓に

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

UINavigationController *mainViewController = [[UINavigationController alloc] init]; 
self.mainViewController = [[UINavigationController alloc] initWithRootViewController:mainViewController]; 
self.window.rootViewController = self.mainViewController; 
[self.window makeKeyAndVisible]; 

self.window.rootViewController.title = @"test"; 

MainViewController *tabBarController = [[MainViewController alloc] init]; 
[self.window addSubview:tabBarController.view]; 

これを追加しかし、私は実行するたびに、私はエラーを取得します

まだ何か不足していますか?

答えて

0

ナビゲーションコントローラを作成し、その後、tabBarControllerを作成し、

//incase you have 2 navigation controllers 
tabBarController.viewControllers=[NSArray arrayWithObjects:navigationController1, navigationController2, nil ]; 
+0

彼はアプリケーション全体のnavigationControllerを望んでいます。したがって、AppDelegate.mで説明したように彼がタブバーコントローラを初期化した場合は、ルート – Fab1n

+0

でなければなりません。次にself.window.rootController = tabBarController;それは動作します。 – Anila

0

を使用して、それにあなたのナビゲーションコントローラを追加ねえ、これは概念で非常に簡単です:それはあなたの意見を推進しているので、

あなたrootViewControllerは、あなたのnavigationControllerなければなりません行ったり来たり。

YourViewControllerがそれだ UITabBarController

のサブクラスである

YourRootController *cont = [[YourRootController alloc] init]; 

UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:cont]; 

関連する問題