ios基础篇(八)——UITabBarController的简单介绍
一、简介
UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ、微信、微博等应⽤。
二、UITabBarController的使用
1、首先初始化UITabBarController
2、设置UIWindow的rootViewController为UITabBarController
3、创建相应的子控制器(viewcontroller)
4、把子控制器添加到UITabBarController
代码:
- //
- // AppDelegate.m
- // 微信
- //
- // Created by Oran Wu on 15-11-5.
- // Copyright (c) 2015年 Xinxin. All rights reserved.
- //
- #import "AppDelegate.h"
- #import "WeChatViewController.h"
- #import "AddressBookViewController.h"
- #import "FindViewController.h"
- #import "MyViewController.h"
- @interface AppDelegate ()
- @end
- @implementation AppDelegate
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- //创建Window
- self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- //创建子控制器
- WeChatViewController *WeChatVC = [[WeChatViewController alloc] init];
- AddressBookViewController *AddressBookVC = [[AddressBookViewController alloc] init];
- FindViewController *FindVC = [[FindViewController alloc] init];
- MyViewController *MyVC = [[MyViewController alloc] init];
- //设置UITabBarButton的图片(normal)与选中时图片(selected)
- UIImage *WeChatImage = [UIImage imageNamed:@"tabbar_mainframe"];
- UIImage *WeChatSeletedImage = [UIImage imageNamed:@"tabbar_mainframeHL"];
- WeChatVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"微信" image:WeChatImage selectedImage:WeChatSeletedImage];
- UIImage *AddressImage = [UIImage imageNamed:@"tabbar_contacts"];
- UIImage *AddressSeletedImage = [UIImage imageNamed:@"tabbar_contactsHL"];
- AddressBookVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"通讯录" image:AddressImage selectedImage:AddressSeletedImage];
- UIImage *FineImage = [UIImage imageNamed:@"tabbar_discover"];
- UIImage *FineSeletedImage = [UIImage imageNamed:@"tabbar_discoverHL"];
- FindVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"发现" image:FineImage selectedImage:FineSeletedImage];
- //提醒数字
FindVC.tabBarItem.badgeValue = @"";- UIImage *MyImage = [UIImage imageNamed:@"tabbar_me"];
- UIImage *MySeletedImage = [UIImage imageNamed:@"tabbar_meHL"];
- MyVC.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"我" image:MyImage selectedImage:MySeletedImage];
- //初始化各ViewController的导航控制器
- UINavigationController *WeChatNav = [[UINavigationController alloc] initWithRootViewController:WeChatVC];
- UINavigationController *AddressBookNav = [[UINavigationController alloc] initWithRootViewController:AddressBookVC];
- UINavigationController *FindNav = [[UINavigationController alloc] initWithRootViewController:FindVC];
- UINavigationController *MyNav = [[UINavigationController alloc] initWithRootViewController:MyVC];
- //初始化一个控制器
- UITabBarController *TabBarCtrl = [[UITabBarController alloc] init];
- TabBarCtrl.viewControllers = [NSArray arrayWithObjects:WeChatNav,AddressBookNav,FindNav,MyNav, nil];
- //设置控制器为Window的根控制器
- self.window.rootViewController = TabBarCtrl;
- //设置window的背景颜色
- self.window.backgroundColor = [UIColor whiteColor];
- //设置Window为主窗口并显示出来
- [self.window makeKeyAndVisible];
- // Override point for customization after application launch.
- return YES;
- }
三、UITabBar
下方的工具条称为UITabBar ,如果UITabBarController有N个子控制器,那么UITabBar内部就会有N 个UITabBarButton作为子控件与之对应。
注意:UITabBarButton在UITabBar中得位置是均分的,UITabBar的高度为49。
在上面的程序中,UITabBarController有4个子控制器,所以UITabBar中有4个UITabBarButton,UITabBar的结构⼤大致如下图所示:
ios基础篇(八)——UITabBarController的简单介绍的更多相关文章
- iOS开发UI篇—UITableview控件简单介绍
iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...
- Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步
Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步 一.概述 PV操作是对信号量进行的操作. 进程同步是指在并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消 ...
- iOS开发Swift篇—(一)简单介绍
iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- Deep learning:三十八(Stacked CNN简单介绍)
http://www.cnblogs.com/tornadomeet/archive/2013/05/05/3061457.html 前言: 本节主要是来简单介绍下stacked CNN(深度卷积网络 ...
- c# 扩展方法奇思妙用基础篇八:Distinct 扩展(转载)
转载地址:http://www.cnblogs.com/ldp615/archive/2011/08/01/distinct-entension.html 刚看了篇文章 <Linq的Distin ...
- iOS基础篇(十五)——UIScrollView的基本用法
滚动视图(UIScrollView)通常用于显示内容尺寸大于屏幕尺寸的视图. 一.基本属性 1.CGSize contentSize :设置UIScrollView的滚动范围 2.CGPoint co ...
- 第一篇:SpringBoot2.0简单介绍
距离Spring Boot1.0发布已经4年了,今年3月份SpringBoot2.0正式发布.让我们一起来了解一下它. Spring Boot主要依赖于Spring,整合了很多框架的使用方式,帮助开发 ...
- c# 扩展方法奇思妙用基础篇八:Distinct 扩展
刚看了篇文章 <Linq的Distinct太不给力了>,文中给出了一个解决办法,略显复杂. 试想如果能写成下面的样子,是不是更简单优雅 var p1 = products.Distinct ...
- 【Hadoop离线基础总结】Hue的简单介绍和安装部署
目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...
随机推荐
- poj 3335(半平面交)
链接:http://poj.org/problem?id=3335 //大牛们常说的测模板题 ------------------------------------------------- ...
- asp.netMVC4(基础知识----传值问题分析)
(1)一般在数据交互的时候,都会涉及到前后台间的相互传值,一般的情况下,方法也有多种,下面就后台定义变量往前台传值: 以下是后台代码: /// <summary> /// 展示举报信息 / ...
- iOS - UIToolbar
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIToolbar : UIView <UIBarPositioning& ...
- Oracle 11g安装步骤详谈
又是十月南京阴雨天气 图书馆花了一个多小左右把11g安装折腾好了.其中折腾SQL Developer 花了好长时间,总算搞定了.好了,先总结下安装步骤,希望给后面的童鞋提高安装效率. 相互方便 共同 ...
- Python学习笔记4—列表
列表定义 >>> a=['] >>> type(a) <type 'list'> >>> bool(a) #列表有值,则为true T ...
- go中间的&和*
package main import "fmt" func main() { var a int = 1 var b *int = &a var c **int = &a ...
- PHP中file_put_contents追加和换行
在PHP的一些应用中需要写日志或者记录一些信息,这样的话.可以使用fopen(),fwrite()以及 fclose()这些进行操作.也可以简单的使用file_get_contents()和file_ ...
- 转 : c++ 结构体 前向声明
typedef struct tag_guid { ULONGLONG utime; ULONGLONG umac; }tpguid; class A { private: int m_teset1; ...
- zabbix实现原理及架构详解
想要用好zabbix进行监控,那么我们首要需要了解下zabbix这个软件的实现原理及它的架构.建议多阅读官方文档. 一.总体上zabbix的整体架构如下图所示: 重要组件说明: 1)zabbix se ...
- js中正则表达式 书写方法
function test(){ var text="index.aspx?test=1&ww=2&www=3"; var re = ...