UITabBarController简单介绍

UITabBarController简单介绍一、UITabBarController简介

IOS提供了3中视图切换的方法,除了熟悉的UINavagationController,另一个最常用的方法是使用UITabBarController(选项卡控制器,又叫分页栏控制器),另外一种方法是使用模态窗口,将在后面介绍。

和UInavagationController一样,,UITabBarController同样只是一个容器,需要用视图控制器来填充。本文对UITabBarController的介绍是纯代码的,我们还可以使用Interface Building的方式创建以及设置,也是比较方便的,读者可自行尝试。

二、UITabBarController的创建:

与构建导航控制器的方法一样,步骤是:

1、在AppDelegate文件中创建一个窗口;

2、创建一个选项卡控制器(当然前提是创建一个选项卡控制器的类,继承于UITabBarController);

3、将该选项卡控制器实例作为窗口的根视图控制器

代码实例:

@interface AppDelegate ()@end@implementationAppDelegate – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {self.window.backgroundColor = [UIColor whiteColor];self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];TabBarController *tbc = [[TabBarController alloc]init];self.window.rootViewController = tbc;[self.window makeKeyAndVisible];return YES;}@end三、设置选项卡控制器的各个子视图控制器

为了演示的效果更加,我们创建了多个不同的视图控制器。直接来看代码:

#import "TabBarController.h"#import "Test1ViewController.h"#import "Test2ViewController.h"#import "Test3ViewController.h"#import "Test4ViewController.h"#import "Test5ViewController.h" @interface TabBarController ()<UITabBarControllerDelegate>@end@implementationTabBarController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.[self loadBaseUI];}- (void)loadBaseUI{//设置代理self.delegate = self;/**这里需要注意的是,如果使用addChildViewController方法将试图控制器一个一个添加到tabBarController中,编译器在编译的时候也是一个一个添加tabBarItem的,如果添加的tabBarItem超过了5个,那么最终显示出来的结果只有5个tabBarItem(实际上是不只五个的)。如果用另一种方法:将所有要添加的视图控制器先存放在一个数组中,然后将数组赋予self.viewControllers属性,在视图控制器超过5个的情况下,结果就会不一样(第5个tabBarItem显示为更多)*/Test1ViewController *VC1 = [[Test1ViewController alloc]initWithNibName:@"Test1ViewController" bundle:nil];VC1.view.backgroundColor = [UIColor greenColor];VC1.tabBarItem.title = @"电话";VC1.tabBarItem.image = [UIImage imageNamed:@"电话"];VC1.tabBarItem.selectedImage = [UIImage imageNamed:@"电话高亮"];VC1.tabBarItem.badgeValue = @"2";// [self addChildViewController:VC1];// UINavigationController *navc =[[UINavigationController alloc]initWithRootViewController:VC1];// [self addChildViewController:navc];Test2ViewController *VC2 = [[Test2ViewController alloc]init];VC2.view.backgroundColor = [UIColor orangeColor];VC2.tabBarItem.title = @"联系人";VC2.tabBarItem.image = [UIImage imageNamed:@"联系人"];VC2.tabBarItem.selectedImage = [UIImage imageNamed:@"联系人高亮"];// [self addChildViewController:VC2];Test3ViewController *VC3 = [[Test3ViewController alloc]init];VC3.view.backgroundColor = [UIColor blueColor];VC3.tabBarItem.title = @"收藏";VC3.tabBarItem.image = [UIImage imageNamed:@"收藏"];VC3.tabBarItem.selectedImage = [UIImage imageNamed:@"收藏高亮"];// [self addChildViewController:VC3];Test4ViewController *VC4 = [[Test4ViewController alloc]init];UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];btn.backgroundColor = [UIColor greenColor];btn.frame = CGRectMake(100, 120, 120, 40);[btn setTitle:@"点击" forState:UIControlStateNormal];[btn addTarget:self action:@selector(clickAction:) forControlEvents:UIControlEventTouchUpInside];[VC4.view addSubview:btn];VC4.view.backgroundColor = [UIColor brownColor];VC4.tabBarItem.title = @"相机";VC4.tabBarItem.image = [UIImage imageNamed:@"相机"];VC4.tabBarItem.selectedImage = [UIImage imageNamed:@"相机高亮"];// [self addChildViewController:VC4];Test5ViewController *VC5 = [[Test5ViewController alloc]init];VC5.tabBarItem.title = @"测试";VC5.tabBarItem.image = [UIImage imageNamed:@"收藏"];// [self addChildViewController:VC5];Test5ViewController *VC6 = [[Test5ViewController alloc]init];VC5.tabBarItem.title = @"测试";VC5.tabBarItem.image = [UIImage imageNamed:@"收藏"];// [self addChildViewController:VC6];Test5ViewController *VC7 = [[Test5ViewController alloc]init];VC5.tabBarItem.title = @"测试";VC5.tabBarItem.image = [UIImage imageNamed:@"收藏"];// [self addChildViewController:VC7];//设置tabBarController的子视图控制器NSArray *arr = [NSArray arrayWithObjects:VC1,VC2,VC3,VC4,VC5,VC6,VC7,nil];self.viewControllers = arr;//该属性在more中的Edit按钮点击后有所体现self.customizableViewControllers = arr;//设置tabBar风格self.tabBar.barStyle = UIBarStyleDefault;//设置tabBar的背景颜色// self.tabBar.barTintColor = [UIColor lightGrayColor]; //注意设置backGroundColor并不是设置tarBar的背景是,而是设置bar底下一层的颜色self.tabBar.backgroundColor = [UIColor lightGrayColor];//设置所选中的tabBarItem的主题色(默认为蓝色)self.tabBar.tintColor = [UIColor greenColor];}幸福就是重复。每天跟自己喜欢的人一起,通电话,

UITabBarController简单介绍

相关文章:

你感兴趣的文章:

标签云: