前期概述:UITabBar它是UINavigationController的管理者,其层级关系如下:App->window->tabBar->naVC->VC
准备工作:我们要建立六个视图控制器对此我们只拿两个作为例子
创建按钮
1.
FirstViewController *firstVC=[[FirstViewController alloc]init];
//创建第一个naVC
UINavigationController *firstNAVC=[[UINavigationController alloc]initWithRootViewController:firstVC];
//创建tabBar上的按钮及其内容
firstVC.tabBarItem=[[[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemHistory tag:1000]autorelease];
firstVC.tabBarItem.badgeValue=@"+99";
2.
SecondViewController *secVC=[[SecondViewController alloc]init];
UINavigationController *secNAVC=[[UINavigationController alloc]initWithRootViewController:secVC];
secVC.tabBarItem=[[[UITabBarItem alloc]initWithTitle:@"朋友圈" image:[UIImage imageNamed:@"lu02.png" ] selectedImage:[UIImage imageNamed:@"lu01.png"]]autorelease];
按钮创建好,然后创建一个UITabBarController让所有的按钮显示出来
UITabBarController *tabVC=[[UITabBarController alloc]init];
//tabBarController通过一个数组来管理所有要显示出来的naVC;
tabVC.viewControllers=@[firstNAVC,secNAVC,thirdNAVC,fourthNAVC,fifthNAVC,sixthNAVC];
self.window.rootViewController=tabVC;
//对tabBar进行外观设置
tabVC.tabBar.translucent=NO;
//背景yanse
tabVC.tabBar.barTintColor=[UIColor brownColor];
//点击之后的颜色
tabVC.tabBar.tintColor=[UIColor darkGrayColor];
//点击之后让+99去掉这样我们需要一个协议方法
//设置代理人
tabVC.delegate=self;
//运行后定位第几个开始
tabVC.selectedIndex=4;
显示的效果是我们在设置第一个视图控制器的时候,将其上面添加了”+99”这样的样式,而有了这个方法再我们点击第一个视图后+99就会消失.等号后面的如果是nil结果是什么都没有.如果是@”“结果是点击每个视图控制器,如果上面带有一个小标则就消失代替的是个类似消息的小图标.只要点击任意视图就会出现消息小图标
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
//此等号后面的值有两种@""或者nil;
viewController.tabBarItem.badgeValue=nil;
}
内存释放