IOS学习笔记12—UITabBarController ,重点在于灵活设置导航控制器。

UITabBarController是选项卡栏导航控制器,显示效果是在页面底部有多个选项卡,通过点击不同选项卡可以在不同的ViewController之间进行切换。


这种对象的层次结构至少包含6个对象:

一个UITabBarController;

两个UIViewController;

一个UITabBar;

两个UITabBarItem;


UITabBarController 是选项卡栏视图控制器,UITabBar是底部两个UITabBarItem的容器,管理两个UITabBarItem,每个UITabBarItem对 应一个UIViewController,然后每个UIViewController都有自己的视图和视图控制器。


UITabBarController中有一个viewControllers属性,这是一个NSArray,包含选项卡控制器的视图控制器


下面来用代码创建一个UITabBarController:

下面是工程结构:

IOS学习笔记12—UITabBarController ,重点在于灵活设置导航控制器。_第1张图片

首先创建两个带xib文件的ViewController,分别为FirstViewController和SecondViewController

然后在AppDelegate.h中声明@property (strong,nonatomic) UITabBarController *tabBarController;,并添加协议UITabBarControllerDelegate


在.m中实现如下代码:

[cpp] view plain copy
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
  4.     // Override point for customization after application launch.  
  5.      
  6.     //第一个tab的viewController  
  7.     FirstViewController *firstViewController = [[FirstViewController alloc]init];  
  8.      
  9.     //如果在这里指定tabitem标题,则在FirstViewController中指定self.tabBarItem.title则不生效     
  10.     firstViewController.title = @"First view";  
  11.      
  12.     UITabBarItem *firstItem = [[UITabBarItem alloc]initWithTitle:@"First" image:nil tag:1];  
  13.     [firstItem setFinishedSelectedImage:[UIImage imageNamed:@"p1"] withFinishedUnselectedImage:[UIImage imageNamed:@"p1_f"]];  
  14.     firstViewController.tabBarItem = firstItem;  
  15.      
  16.      
  17.     SecondViewController *secondViewController = [[SecondViewController alloc]init];  
  18.      
  19.     //构建TabBarItem  
  20.     UITabBarItem *secondItem = [[UITabBarItem alloc]initWithTitle:@"Second" image:nil tag:2];  
  21.      
  22.     //设置选中和非选中状态下的图片  
  23.     [secondItem setFinishedSelectedImage:[UIImage imageNamed:@"p2_f"] withFinishedUnselectedImage:[UIImage imageNamed:@"p2"]];  
  24.     //右上角小图标  
  25.    [secondItem setBadgeValue:@"2"];  
  26.     //指定tabBarItem  
  27.     secondViewController.tabBarItem = secondItem;  
  28.     [secondItem release];  
  29.      
  30.     //构建UITabBarController并指定代理为本身  
  31.     self.tabBarController = [[[UITabBarController alloc]init] autorelease];  
  32.     self.tabBarController.delegate = self;  
  33.      
  34.     //为UITabBarController添加TabBarItem  
  35.     self.tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController,secondViewController, nil];  
  36.      
  37.     [firstViewController release];  
  38.     [secondViewController release];  
  39.      
  40.     //设置选中哪个tab  
  41. //    [self.tabBarController setSelectedIndex:0];  
  42.      
  43.     //指定根视图  
  44.     self.window.rootViewController  = self.tabBarController;  
  45.      
  46.     self.window.backgroundColor = [UIColor whiteColor];  
  47.     [self.window makeKeyAndVisible];  
  48.     return YES;  
  49. }  


IOS学习笔记12—UITabBarController ,重点在于灵活设置导航控制器。_第2张图片IOS学习笔记12—UITabBarController ,重点在于灵活设置导航控制器。_第3张图片


你可能感兴趣的:(IOS学习笔记12—UITabBarController ,重点在于灵活设置导航控制器。)