分栏控制器 - OC

分栏控制器

分栏控制器 - OC_第1张图片
屏幕快照 2017-02-08 下午9.38.32.png

UITabBarItem:分栏按钮元素对象
badgeValue:分栏按钮提示信息
selectedIndex:分栏控制器选中的控制器索引
viewControllers:分栏控制器管理数组
selectedViewController:分栏控制器选中的控制器对象

先创建视图控制器

//创建控制器一
VCRoot * vcR = [[VCRoot alloc]init];
//蓝色背景
vcR.view.backgroundColor = [UIColor blueColor];
//创建控制器二
VCSecond * vcSecond = [[VCSecond alloc]init];
//黄色背景
vcSecond.view.backgroundColor = [UIColor yellowColor];
//创建控制器三
VCThird * vcThird = [[VCThird alloc] init];
//橙色背景
vcThird.view.backgroundColor = [UIColor orangeColor];

vcR.title = @"视图1";
vcSecond.title = @"视图2";
vcThird.title = @"视图3";

初始化分栏控制器对象

//创建分栏控制器对象
UITabBarController * tbController = [[UITabBarController alloc] init];

分栏视图控制器管理3个视图控制器

//创建一个控制器数组对象
//将所有要被分栏控制器管理的对象添加到数组中
//分栏的显示顺便根据这次地方数组的顺序
NSArray * arrayVC = [NSArray arrayWithObjects:vcR,vcSecond,vcThird, nil];
//将分栏视图控制器管理数组赋值
tbController.viewControllers = arrayVC;
//将分栏控制器作为视图控制器
self.window.rootViewController = tbController;

分栏视图控制器属性设置

//设置选中的视图控制器的索引
//通过索引来确认显示哪一个控制器
tbController.selectedIndex = 2;

//当前选中的控制器对象
if (tbController.selectedViewController == vcThird)
{
    NSLog(@"当前显示的是控制器三");
}

分栏控制器风格设置

//设置分栏控制器的工具栏的透明度
tbController.tabBar.translucent = NO;
//改变工具栏颜色
tbController.tabBar.barTintColor = [UIColor redColor];
//更改按钮风格颜色
tbController.tabBar.tintColor = [UIColor orangeColor];

创建分栏按钮对象

//创建一个分栏按钮对象
//参数1:文字
//参数2:显示图片图标
//参数3:设置按钮的tag  
//方法一
//UITabBarItem * tabBarItem = [[UITabBarItem alloc] initWithTitle:@"111" image:nil tag:101];
//self.tabBarItem = tabBarItem;

//方法二
//根据系统风格创建分栏视图
//P1:系统风格设定
UITabBarItem * tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemContacts tag:101];
//按钮右上角的提示信息
//通常用来提示未读的信息
tabBarItem.badgeValue = @"2";
self.tabBarItem =tabBarItem;

分栏控制器协议实现

@interface AppDelegate : UIResponder     

@property (strong, nonatomic) UIWindow *window;

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers
{
    NSLog(@"编译器前");
}

- (void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed
{
    NSLog(@"即将结束前");
}

- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed
{
    NSLog(@"vcs= %@",viewControllers);
    if (changed == YES)
    {
        NSLog(@"顺序发生改变");
    }
    NSLog(@"已经结束编辑");
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    if     (tabBarController.viewControllers[tabBarController.selectedIndex] == viewController)
    {
        NSLog(@"ok1");
    }
    NSLog(@"选中控制器对象");
}

你可能感兴趣的:(分栏控制器 - OC)