UITabBarController是選項卡欄導航控制器,顯示效果是在頁面底部有多個選項卡,通過點擊不同選項卡可以在不同的ViewController之間進行切換。
這種對象的層次結構至少包含6個對象:
一個UITabBarController;
兩個UIViewController;
一個UITabBar;
兩個UITabBarItem;
UITabBarController
是選項卡欄視圖控制器,UITabBar是底部兩個UITabBarItem的容器,管理兩個UITabBarItem,每個UITabBarItem對
應一個UIViewController,然后每個UIViewController都有自己的視圖和視圖控制器。
UITabBarController中有一個viewControllers屬性,這是一個NSArray,包含選項卡控制器的視圖控制器
下面來用代碼創建一個UITabBarController:
下面是工程結構:

首先創建兩個帶xib文件的ViewController,分別為FirstViewController和SecondViewController
然后在AppDelegate.h中聲明@property (strong,nonatomic)
UITabBarController *tabBarController;,并添加協議UITabBarControllerDelegate
在.m中實現如下代碼:
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
-
-
-
- FirstViewController *firstViewController = [[FirstViewController alloc]init];
-
-
- firstViewController.title = @"First view";
-
- UITabBarItem *firstItem = [[UITabBarItem alloc]initWithTitle:@"First" image:nil tag:1];
- [firstItem setFinishedSelectedImage:[UIImage imageNamed:@"p1"] withFinishedUnselectedImage:[UIImage imageNamed:@"p1_f"]];
- firstViewController.tabBarItem = firstItem;
-
-
- SecondViewController *secondViewController = [[SecondViewController alloc]init];
-
-
- UITabBarItem *secondItem = [[UITabBarItem alloc]initWithTitle:@"Second" image:nil tag:2];
-
-
- [secondItem setFinishedSelectedImage:[UIImage imageNamed:@"p2_f"] withFinishedUnselectedImage:[UIImage imageNamed:@"p2"]];
-
- [secondItem setBadgeValue:@"2"];
-
- secondViewController.tabBarItem = secondItem;
- [secondItem release];
-
-
- self.tabBarController = [[[UITabBarController alloc]init] autorelease];
- self.tabBarController.delegate = self;
-
-
- self.tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController,secondViewController, nil];
-
- [firstViewController release];
- [secondViewController release];
-
-
-
-
-
- self.window.rootViewController = self.tabBarController;
-
- self.window.backgroundColor = [UIColor whiteColor];
- [self.window makeKeyAndVisible];
- return YES;
- }

