UI控件19 分栏控制器基础

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.
}

猜你喜欢

转载自blog.csdn.net/teropk/article/details/81393521