分栏控制器
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 <UIApplicationDelegate,UITabBarControllerDelegate>
@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(@"选中控制器对象");
}