1.与导航控制器的区别:导航控制器管理的是有层级关系的控制器。
UITabBarItem:分栏按钮元素对象
badgeValue:分栏按钮提示信息
viewControllers:分栏控制器管理数组
selectedViewController:分栏控制器选中的控制器对象
删除storyboard++
首先创建三个类 继承于UIViewController
AppDlegate.m文件实现:
#import "AppDelegate.h"
//先把三个控制器包含金来
#import "VCFirst.h"
#import "VCSecond.h"
#import "VCThird.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//本来用storyboard创建 现在删除掉了 就得用这个创建
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//显示window
[self.window makeKeyAndVisible];
//创建视图控制器1,2.3
VCFirst * vcFirst = [[VCFirst alloc]init];
VCSecond * vcSecond = [[VCSecond alloc]init];
vcSecond.view.backgroundColor = [UIColor yellowColor];
VCThird * vcThird= [[VCThird alloc]init];
vcThird.view.backgroundColor = [UIColor orangeColor];
//设置这三个控制器的标题
vcFirst.title = @"视图一";
vcSecond.title = @"视图二";
vcThird.title = @"视图三";
//小细节 一旦调用view.backgroundColor 就会调用 view.didLoad函数
vcFirst.view.backgroundColor = [UIColor blueColor];
//创建分栏控制器
UITabBarController * tbController = [[UITabBarController alloc]init];
//做一个数组 把原来的三个控制器放在数组中
//所有被分栏控制器管理的对象添加到数组中
NSArray * arrayVC = [NSArray arrayWithObjects:vcFirst,vcSecond,vcThird, nil];
//将视图控制器管理李数组进行赋值
//viewControllers 可以访问所有的分栏控制器
tbController.viewControllers = arrayVC;
//将分栏控制器作为根视图 通过索引确定显示哪一个控制器
//索引是指在数组中的索引
self.window.rootViewController = tbController;
//把初始的视图设为第x个控制器
tbController.selectedIndex = 2;
//selectedViewController:当前选中的控制器对象
if ( tbController.selectedViewController == vcThird ){
NSLog(@"当前显示的是控制器三");
}
//设置分栏控制器的透明度
tbController.tabBar.translucent = NO;
return YES;
}
VCFirst.m文件实现:
#import "VCFirst.h"
@interface VCFirst ()
@end
@implementation VCFirst
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//方法一
//创建一个分栏按钮对象
//参数三 :设置按钮的tag值 可以进行标记
// UITabBarItem * tabBarItem = [[UITabBarItem alloc]initWithTitle:@"111" image:nil tag:101];
//
// self.tabBarItem= tabBarItem;
//根据系统风格创建分栏按钮
UITabBarItem * tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemContacts tag:101];
//按钮右上角的提示信息
//通常用来提示未读信息
tabBarItem.badgeValue = @"22";
self.tabBarItem = tabBarItem;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}