UITabBarController

转载 2015年11月20日 14:57:18

文章目的

如何用纯代码的方式创建UITabBarController

方法


1. 首先开启XCode并建立一个Empty Application



2. 加入一个Objective-C Class并继承自UIViewController,取名为FirstViewController

3. 重复一次上面动作,并取名为SecondViewController


4. 之后可在工程中看到此图

5. 开启AppDelegate.h,并加入如下代码

  1. #import <UIKit/UIKit.h>  
  2.   
  3. @interface AppDelegate : UIResponder <UIApplicationDelegate>  
  4. {  
  5.     UITabBarController* tabBarViewController;  
  6. }  
  7.   
  8. @property (strong, nonatomic) UIWindow *window;  
  9.   
  10. @end  

6. 开启AppDelegate.m,并加入如下代码
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
  4.     // Override point for customization after application launch.  
  5.     self.window.backgroundColor = [UIColor whiteColor];  
  6.     [self.window makeKeyAndVisible];  
  7.       
  8.     tabBarViewController = [[UITabBarController alloc]init];  
  9.     [self.window setRootViewController:tabBarViewController];  
  10.       
  11.     FirstViewController* first = [[FirstViewController alloc]init];  
  12.     SecondViewController* second = [[SecondViewController alloc]init];  
  13.     tabBarViewController.viewControllers = [NSArray arrayWithObjects:first, second, nil];  
  14.     [first release];  
  15.     [second release];  
  16. }  

  1. tabBarViewController = [[UITabBarController alloc]init];  
  2. [self.window setRootViewController:tabBarViewController];  
第一行代码为初始一个UITabBarController

第二行为将tabBarViewController设定为window的root view controller(根视图控制器)


  1. tabBarViewController.viewControllers = [NSArray arrayWithObjects:first, second, nil];  
接下来利用UITabBarController的viewControllers属性,设定First及Second两个控制器。

7.用代码修改TabBar与TabBarItem
  1. UITabBar *tabBar = tabBarViewController.tabBar;  
  2. UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];  
  3. UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];  
UITabBarController提供一个tabBar属性,我们可以透过这个属性取得UITabBar

并在UITabBar的items属性取得所有的UITabBarItem


  1. tabBarItem1.title = @"Home";  
  2. tabBarItem2.title = @"Maps";  
透过UITabBarItem的title属性,可以设定tab bar item上显示的文字

  1. [tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"home_selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"home.png"]];  
  2. [tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:@"maps_selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"maps.png"]];  

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage
这是UITabBarItem提供的方法,可以设定上面所显示的图片,selectedImage是只目前选择并显示的TabBatItem显示的图片

unselectedImage则是平常未选中时显示的图片


  1. UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar.png"];  
  2. [[UITabBar appearance] setBackgroundImage:tabBarBackground];  
这段代码可以修改UITabBar显示的背景图

  1. [[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"tabbar_selected.png"]];  
这可以设定选中的UITabBarItem后面的图

  1. UIColor *titleHighlightedColor = [UIColor colorWithRed:153/255.0 green:192/255.0 blue:48/255.0 alpha:1.0];  
  2. [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:  
  3.                                                        titleHighlightedColor, UITextAttributeTextColor,  
  4.                                                        nil] forState:UIControlStateHighlighted];  

- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state
这个方法可以设定显示文字的属性,在这段代码中,是设定为显示文字的颜色





ios8中UITabbarController的图片颜色处理

我们知道。在IOS8中,对于UITabbarController的方法,有些已经不能用了,下面把最新的方法介绍如下: 1. 用下面的代码,可以对tabbaritem进行图片设定,即没有点击和点击之后的...
  • yangfanacc
  • yangfanacc
  • 2014年12月15日 16:10
  • 908

UITabBarController设置选中时图片和文字的颜色

在做标签栏时,美工会给出两套图。一种是正常状态的,一种是选中状态的。但是当我们设置图片时tabBarItem.selectedImage = [UIImage imageNamed:[NSString...
  • qq244596
  • qq244596
  • 2016年06月12日 14:57
  • 4136

UITabBarController背景图片和适配

UITabBarController 修改背景   转载注明出处:http://hi.baidu.com/yunhuaikong/blog/item/086d43fb79fe82c...
  • antjumper
  • antjumper
  • 2014年09月04日 09:34
  • 798

iOS使用UITabbarController跳转(push)界面,如何自动隐藏底部tabbar?

一、首先简单地讲一下UITabbarController的使用方法,直接上代码: //初始化tabbarcontroller - (void)setTabbarController{ NSA...
  • u011452278
  • u011452278
  • 2016年10月19日 14:18
  • 2481

UITabBarController来管理多个UIViewController以及导航栏的加入

1导航控制器 //AppDelegate.m 中 -(BOOL)application:(UIApplication *)application didFinishLaunchingWidthOpti...
  • liyunxiangrxm
  • liyunxiangrxm
  • 2016年01月22日 18:43
  • 2139

自定义UITabbarController及向UITabBar中添加自定义按钮

在某些项目的初期我们经常会选择使用UITabbarController或者是UINavigationController或者是两者的结合,经常需要自定义自己需要的类,本文讲述了自定义UITabbarC...
  • wu948327362
  • wu948327362
  • 2016年05月15日 21:12
  • 4361

UITabBarController--选项卡栏控制器

UITabBarController–选项卡栏控制器继承关系NSObject->UIResponder->UIViewController->UITabBarController术语UITabBarC...
  • go_fishing
  • go_fishing
  • 2016年02月24日 16:03
  • 858

UITabbarController 跳转到任意子控制器

UITabBarController的简单使用 UITabBarController的使用步骤 初始化UITabBarController 设置UIWindow的rootView...
  • Xia0Liang
  • Xia0Liang
  • 2015年12月21日 18:25
  • 3099

[iOS]系统UITabBarController详解及自定义

对于UITabBarController, 大家都不陌生, 但是有时候又不那么的熟悉, 下面就来再认识一下这个熟悉的陌生人....
  • lqq200912408
  • lqq200912408
  • 2016年12月17日 16:59
  • 1914

控制器跳转和视图切换之NavigationController,UITabBarController,模态

在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单。在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarControllerUIN...
  • u011146511
  • u011146511
  • 2016年04月26日 12:20
  • 2220
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITabBarController
举报原因:
原因补充:

(最多只允许输入30个字)