这个东西是长这个样子的
官方有个图介绍这个TabBar的结构,我们先来看看这个结构图
经过我自己的个人理解,我重新归纳了一下
整个UITabBarControllor分开了几个部分
- 在这个Controllor里面有个ViewControllors(NSArray),不可变的列表,里面放的装的都是UIViewControllor,每一个controllor就是每一个tab的视图控制器(viewControllor),这个·
- 每一个视图控制器附带一个tab,选择到那个tab,就会显示对应的view.
下面是一个简单的例子:图中的tab图标大小建议是30x30,iPad 建议60x60
//所有视图的开端,必须在appDelegate开始编写,下面的代码是在appDelegate.m里面编写 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //创建主窗口 self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]]; //把tabbar controllor 设置为根视图 MyTabBarController *mt = [[MyTabBarController alloc]init]; self.window.rootViewController = mt; [self.window makeKeyAndVisible]; //设置背景色,默认为黑色 // self.window.backgroundColor = [UIColor redColor]; return YES; }
MyTabBarController.m
#import "MyTabBarController.h" @interface MyTabBarController () @end @implementation MyTabBarController - (void)viewDidLoad { [super viewDidLoad]; UIViewController *c1 = [[UIViewController alloc]init]; //设置tab bar item的名称 c1.tabBarItem.title = @"客户"; //设置view的背景色 c1.view.backgroundColor = [UIColor redColor]; //设置背景图 c1.tabBarItem.image = [UIImage imageNamed:@"customer2"]; UIViewController *c2 = [[UIViewController alloc]init]; c2.tabBarItem.title = @"列表"; c2.view.backgroundColor = [UIColor whiteColor]; c2.tabBarItem.image = [UIImage imageNamed:@"list"]; //添加视图两种方法 //第一种,不建议这种,这个list本身是NSArray,不变数组,所以每次添加使,项目内容不与之前项目相同会自动重建新的数组重新添加 // [self addChildViewController:c1]; // [self addChildViewController:c2]; //第二种方法 self.viewControllers=@[c1,c2]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end
时间: 2024-10-14 16:53:09