0122——UITabBarController

UITabBarController是IOS中很常用的一个viewController。UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中.

一.创建

最常见的创建UITabBarController的地方就是在application delegate中的 applicationDidFinishLaunching:方法,因为UITabBarController通常是作为整个程序的rootViewController的,我们需要在程序的window显示之前就创建好它,具体步骤如下:

  1、创建一个UITabBarController对象

  2、创建tabbarcontroller中每一个tab对应的要显示的对象子控制器

  3、通过设置UITabBarController对象为window.rootViewController,然后显示window

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

//创建窗口

self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

//创建tabbarcontroller

UITabBarController * tabbarController = [[UITabBarController alloc]init];

tabbarController.tabBar.tintColor = [UIColor orangeColor]; //显示的字体颜色

//创建每个界面

HomeViewController * homeVC =[[HomeViewController alloc]init];

homeVC.view.backgroundColor =[UIColor whiteColor];

homeVC.tabBarItem = [[UITabBarItem alloc]initWithTitle: @"主页"image:[UIImage imageNamed:@"tabbar_home"] selectedImage:[[UIImage imageNamed:@"tabbar_home_selected"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];//使用自身的颜色,而不是默认颜色

//将创建的添加到tabbarController

tabbarController.viewControllers = @[homeVC,messVC,discVC,myVC];//加的顺序就是现实的顺序

self.window.rootViewController = tabbarController;

//显示窗口

[self.window makeKeyAndVisible];

return YES;

}

二.tabbar

屏幕下方的工具条称为UITabBar ,如果UITabBarController有N个子控制器,那么UITabBar内部就会有N 个UITabBarButton作为子控件与之对应。

注意:UITabBarButton在UITabBar中得位置是均分的,UITabBar的高度为49。

三.UITabBarButton

UITabBarButton?面显?什么内容,由对应子控制器的tabBarItem属性来决定

[email protected]"消息";

四.在tabbar中间加入一个按钮

第一步:自己定义一个CustomTabBarController,一个CustomUITabBar

第二步:CustomUITabBar中重新布局(给button让出一个位置)

- (void)layoutSubviews{

[super layoutSubviews];

//计算每个item的平均宽度

CGFloat avgWith = self.frame.size.width/5;

NSInteger index = 0;

for (UIView *item in self.subviews) {

if ([item isKindOfClass:NSClassFromString(@"UITabBarButton")]) {

item.frame = CGRectMake(index * avgWith, item.frame.origin.y, avgWith, item.frame.size.height);

index ++;

if (index == 2) {

_addButton.frame = CGRectMake(index * avgWith, 3, avgWith, 44);

[self addSubview:_addButton];//加入button

index++;

}

}

}

}

CustomTabBarController和CustomUITabBar之间是代理关系,而tabbar是只读属性,用下面的话来设置

@implementation CustomTabBarController

- (void)viewDidLoad {

[super viewDidLoad];

CustomUITabBar *tb = [[CustomUITabBar alloc]init];

tb.delegate = self;

[self setValue:tb forKey:@"tabBar"];//只读,属性设置不了的时候

}

第三步:实现代理

代理实现点击button打开页面

– presentViewController:animated:completion: 弹出一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil
– dismissViewControllerAnimated:completion:退出一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil

-(void)addButtonDidClicked:(UIButton *)sender{

addViewController * addVC = [[addViewController alloc]init];

addVC.view.backgroundColor = [UIColor whiteColor];

[self presentViewController:addVC animated:YES completion:nil];

}

时间: 2024-11-03 20:52:46

0122——UITabBarController的相关文章

Snail—UI学习之自定义标签栏UITabBarController

这里的背景跟上面的差不多 不过这里要用到AppDelegate的单例进行传值 首先到AppDelegate.h文件中 <span style="color:#FF0000;">#import <UIKit/UIKit.h> @interface WJJRootViewController : UITabBarController //声明一UIButton属性 来记录当前按下的按钮 @property (nonatomic,strong) UIButton *

iOS开发-UI (十一) UITabBarController

知识点: 1.UITabBarController使用 2.UITabBarItem使用 关于TabBarController除了本次整理的内容,有兴趣的可以看下我以前发过的这两篇,在实际开发中很实用的东西. RDVTabBarController的基本使用 以及tabbar的防止双点击方法 从tabBarController的一个item上的控制器跳转到另一个item上的控制器 ======================= UITabBarController 1.创建方式 2.如何把一个U

UITabBarController的创建与自定义TarBar---学习笔记三

代码如下: #import <UIKit/UIKit.h> @interface BSJTabBarViewController : UITabBarController @end #import "BSJTabBarViewController.h" #import "BSJTabBar.h" @interface BSJTabBarViewController () @end @implementation BSJTabBarViewControll

UITabBarController 基本定制

UITabBarController 定制 特点 用法 1.准备好你的tabBar图片及其他图片(哈哈哈!!!!),我的图片都放在了Assets.xcassets中. 2.导入本工程中的Categroy文件夹, 其中包含: HexColor.h/.m(设置颜色的), NSString+RenderingModel.h/.m(处理图片,让其保持本色或者默认的那种), UIColor+CreateImage.h/.m(填充tabBar的背景颜色), UIFont+fonts.h/.m(设置字体),

UITabBarController未呈现时present另一个ViewController会发生什么?

一次给了下面两条警告(精彩吧): Presenting view controllers on detached view controllers is discouraged Unbalanced calls to begin/end appearance transitions for <UITabBarController: 0x7fc046131d70>. 解决办法,dispatch_after 延迟present就好了.

UITabBarController简单介绍

转自:http://www.cnblogs.com/wendingding/p/3775488.html 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ.微信等应?. 二.UITabBarController的使用 1.使用步骤: (1)初始化UITabBarController (2)设置UIWindow的rootViewContr

UITabBarController的创建等基本方法

1 #import "AppDelegate.h" 2 3 @interface AppDelegate () <UITabBarControllerDelegate> 4 5 @end 6 7 @implementation AppDelegate 8 9 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptio

iOS基础之UITabBarController(标签视图控制器)

UITabBarController是可以帮我们添加.管理许多的标签项,使我们的程序包含不同的操作模式,由于管理UITabBar可能比较麻烦,系统帮我们对其进行了封装,产生了简单好用的UITabBarController--标签视图控制器. 代码演示: #import "AppDelegate.h" #import "FirstViewController.h" #import "SecondViewController.h" #import &

2016.01.21 UITabBarController

UITabBarController是IOS中很常用的一个viewController.UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中.可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ.微信.微博等应?. ?.创建 在storyboard中的模拟我们就不多说了,直接进入直接代码的编写.(模拟微博的tabBarController进行编写) 我们选择在Applic