iOS基础控件-UITabBarController - 2 之UITabBarItem 详解,结合视图控制器和导航控制器的用法

来源:互联网 发布:儿童服装淘宝网 编辑:程序博客网 时间:2024/05/21 08:44
1,每个视图控制器对应一个tabBarItem属性,每个视图控制器可以个性化定制自己的tabBarItem
2,各个tabBarItem实例显示在UITabBar实例上。
3,点击不同的tabBarItem,能切换不同的视图控制器显示
4,UITabBar上最多可以显示5个TabBarItem,当向UITabBarController中添加超过5个viewController             
     的时候,第五个TabBarItem自动变成一个MORE按钮
5,当点击给你更多的时候,会切换到一个导航控制器,此导航控制器为UITabBarController自动生成           
     的moreNavigationController,里边放有其他未显示的viewController
6,同时右上角会有一个编辑按钮,点击编辑按钮,可以对所有视图控制器的位置进行变更







创建XSViewController1.h到XSViewController6.h 六个UIViewController类

<XSAppDelegate.m>
#import "XSAppDelegate.h"

@implementationXSAppDelegate

- (
BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
   
self.window= [[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
   
// Override point for customization after application launch.
   
self.window.backgroundColor= [UIColorwhiteColor];
   
   
XSViewController1*VC1 = [[XSViewController1alloc]init];
   
UINavigationController*navController = [[UINavigationControlleralloc]initWithRootViewController:VC1];
   
   
//    //这样赋值后,使用.title属性取不到值
//    [navController.tabBarController setTitle:@"界面1"];
   
   
//这样赋值后,当当与对tabBarController.titlenavigationItem.title同时进行赋值
   
//使用tabBarItem.title取值,能取到
    [navController
setTitle:@"界面1"];
   
//进行图片赋值
    [navController.
tabBarItemsetImage:[UIImageimageNamed:@"tabbar_account.png"]];
   
   
XSViewController2*VC2 = [[XSViewController2alloc]init];
    [VC2
setTitle:@"界面2"];
   
//设置按钮选中和没选中的图片,iOS7不能用这个方法
//    [VC2.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"tabbar_appfree_press.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tabbar_appfree.png"]];
   
   
   
XSViewController3*VC3 = [[XSViewController3alloc]init];
    [VC3
setTitle:@"界面3"];
   
//
    [VC3.
tabBarItemsetImage:[UIImageimageNamed:@"tabbar_limitfree.png"]];
   
   
   
XSViewController4*VC4 = [[XSViewController4alloc]init];
    [VC3
setTitle:@"界面4"];
    VC4.
tabBarItem.image= [UIImageimageNamed:@"tabbar_limitfree.png"];
   
//设置微标
    VC4.
tabBarItem.badgeValue= @"10";
   
   
   
   
XSViewController5*VC5 = [[XSViewController5alloc]init];
   
   
//创建UITabItem的实例
   
UITabBarItem*item1 = [[UITabBarItemalloc]initWithTabBarSystemItem:UITabBarSystemItemHistorytag:0];
    VC5.
tabBarItem= item1;
   
//通过系统样式的初始化方式,在设置titleimage属相,设置无效
    VC5.
title= @"界面5";
    VC5.
tabBarItem.image= [UIImageimageNamed:@"tabbar_limitfree.png"];
   
   
   
XSViewController6*VC6 = [[XSViewController6alloc]init];
     // 确保title值可以被取到
    VC6.
title= @"界面6";
   
//通过这种方式进行初始化,效果等同于直接为VC6.tabBarItem.title  VC6.tabBarItem.image赋值
   
UITabBarItem*item2 = [[UITabBarItemalloc]initWithTitle:@"界面6"image:[UIImageimageNamed:@"tabbar_limitfree.png"] tag:1];
    VC6.
tabBarItem= item2;
   
   
   
   
   
NSArray *controllers = [NSArrayarrayWithObjects:navController,VC2,VC3,VC4,VC5,VC6,nil];
   
   
UITabBarController*tabController = [[UITabBarControlleralloc]init];

    [tabController
setViewControllers:controllers];

   
self.window.rootViewController= tabController;
   
   
    [
self.windowmakeKeyAndVisible];
   
return YES;
}
0 0