在创建我的第一个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中,我创建了一个导航控制器并将其用作rootViewController。
然后我创建了一个选项卡控制器并将其添加到我的窗口中
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];
但是每当我跑步时,我都会出错"
不支持推送导航控制器
我还缺少什么吗?
您可以创建一个导航控制器,然后创建一个 tabBarController 并将导航控制器添加到其中使用
//incase you have 2 navigation controllers
tabBarController.viewControllers=[NSArray arrayWithObjects:navigationController1, navigationController2, nil ];
这在概念上很容易:
你的rootViewController必须是你的导航控制器,因为它来回推动你的视图。
YourRootController *cont = [[YourRootController alloc] init];
UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:cont];
其中YourViewController
是UITabBarController
的子类
就是这样。