UITabBarControllor

这个东西是长这个样子的

官方有个图介绍这个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

UITabBarControllor的相关文章

IOS开发之控件篇UITabBarControllor第二章 - 遮掩TableView问题

在IOS7.0以后UITabBar 里面放入一个UITableView会出现一个问题,Table会被TabBar掩盖了,当移动到最后一项的时候,永远看不到,如下面的例子,总共是99项,但是只能显示到98 解决方法如下: - (void)viewDidLoad { [super viewDidLoad]; self.edgesForExtendedLayout = UIRectEdgeNone; } 主要是这一句self.edgesForExtendedLayout = UIRectEdgeNon