3

最初の iPhone アプリを作成するのに苦労しているときに、Apple の例にはタブバーまたはナビゲーション バーのいずれかがあり、両方が存在しないことに気付きました。

これを行うことは可能ですか?

ここに 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];

編集:

私は本当にフォローしていないので、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];

しかし、実行するたびにエラーが発生します」

ナビゲーション コントローラーのプッシュはサポートされていません

私はまだ何かを見逃していますか?

4

2 に答える 2

0

ナビゲーションコントローラーを作成してから、tabBarController を作成し、次を使用してナビゲーションコントローラーを追加できます

 //incase you have 2 navigation controllers
 tabBarController.viewControllers=[NSArray arrayWithObjects:navigationController1, navigationController2, nil ];
于 2012-05-03T11:49:05.227 に答える
0

ちょっと、これは概念的には非常に簡単です:

ビューを前後にプッシュしているため、rootViewController は、navigationController である必要があります。

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

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

YourViewControllerのサブクラスはどこですかUITabBarController

それでおしまい。

于 2012-05-03T11:54:11.720 に答える