iOS 7:标签栏控制器的不同导航项目
我是iOS应用程序开发的新手。 目前我正在开发一个带有标签栏的小应用程序。 我面临的问题是,我想有不同的导航项foreach选项卡。 我尝试了很多东西,但事情并不奏效。 我用本地的iOS语言进行编程。
在我的应用程序中,我有一个AppDelegate。 在我的AppDelegate中有一小段代码来设置我的mainViewController:
- (void)setupOverlordViewController { MainViewController *rootVC = [[MainViewController alloc] initWithNibName:nil bundle:nil]; UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:rootVC]; self.window.rootViewController = navVC; }
我在我的MainViewController中设置我的选项卡:
- (void)viewDidLoad { UIViewController *tabView1 = [[Tab1ViewController alloc] init]; UIViewController *tabView2 = [[Tab2ViewController alloc] init]; UIViewController *tabView3 = [[Tab3ViewController alloc] init]; NSMutableArray *tabViewControllers = [[NSMutableArray alloc] init]; [tabViewControllers addObject:tabView1]; [tabViewControllers addObject:tabView2]; [tabViewControllers addObject:tabView3]; [self setViewControllers:tabViewControllers]; tabView1.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"TabView1", nil) image:[UIImage imageNamed:@"tabView1.png"] tag:1]; tabView2.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"TabView2", nil) image:[UIImage imageNamed:@"tabView2.png"] tag:2]; tabView3.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"TabView3", nil) image:[UIImage imageNamed:@"tabView3.png"] tag:3]; }
每个视图(tabView1,tabView2,tabView3)都有自己的布局,在View的ViewDidLoad方法中设置。 当我想通过添加ViewDidLoad方法在导航栏中添加导航button,但似乎不可能添加button。 添加它们的唯一方法是直接在我的MainViewController中,但是我不能设置导航栏button不同的foreach选项卡。
将button添加到我的导航栏的代码如下所示:
UIBarButtonItem *btnNewRecord = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(btnNewRecord)]; NSArray *rightItems = [NSArray arrayWithObjects:btnNewRecord, nil]; [self.navigationItem setRightBarButtonItems:rightItems];
有人能解释我做错了什么吗?
我已经使用xib文件为您创build了一个示例。 我已经创build了三个视图控制器,并将其添加到导航控制器。 遵循appdelegate
代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { FirstViewController *firstVC = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil]; UINavigationController *firstNavVC = [[UINavigationController alloc] initWithRootViewController: firstVC]; SecondViewController *secondVC = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:nil]; UINavigationController *secondNavVC = [[UINavigationController alloc] initWithRootViewController: secondVC]; ThirdViewController *thirdVC = [[ThirdViewController alloc] initWithNibName:@"ThirdView" bundle:nil]; UINavigationController *thirdNavVC = [[UINavigationController alloc] initWithRootViewController: thirdVC]; NSMutableArray *tabViewControllers = [[NSMutableArray alloc] init]; [tabViewControllers addObject:firstNavVC]; [tabViewControllers addObject:secondNavVC]; [tabViewControllers addObject:thirdNavVC]; firstNavVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"First", nil) image:nil tag:1]; secondNavVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Second", nil) image:nil tag:2]; thirdNavVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Third", nil) image:nil tag:3]; UITabBarController *tabbarController = [[UITabBarController alloc] init]; tabbarController.viewControllers = tabViewControllers; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.rootViewController = tabbarController; [self.window makeKeyAndVisible]; return YES; }
以下是输出:
你可以在这里下载代码示例
你需要单独的导航控制器为每个标签栏视图控制器,然后你可以添加UIBarButtonItem在每个导航控制器。