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 = @"1";

    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的结构?大致如下图所示:

时间: 2024-10-12 22:14:05

ios基础篇(八)——UITabBarController的简单介绍的相关文章

iOS开发UI篇—UIPickerView控件简单介绍

iOS开发UI篇—UIPickerView控件简单介绍 一.UIPickerView 控件 1.简单介绍: 2.示例代码 TXViewController.m文件 1 // Created by 鑫 on 14-10-15. 2 3 // Copyright (c) 2014年 梁镋鑫. All rights reserved. 4 5 // 6 7 8 9 #import "TXViewController.h" 10 11 12 13 @interface TXViewContro

Python基础篇(八)

key words:私有变量,类静态变量,生成器,导入Python模块,r查看模块可以使用的函数,查看帮助信息,启动外部程序,集合,堆,时间模块,random模块,shelve模块,文件读取等 >>> class Rectangle: ...     def __init__(self): ...         self.__width = 0 ...         self.__height = 0 ...     def setSize(self,width,height): .

iOS开发—音频的播放的简单介绍和封装工具类

iOS开发—音频的播放的简单介绍和封装工具类 一.音效的播放简单介绍 简单来说,音频可以分为2种 (1)音效 又称“短音频”,通常在程序中的播放时长为1~2秒 在应用程序中起到点缀效果,提升整体用户体验 (2)音乐 比如游戏中的“背景音乐”,一般播放时间较长 框架:播放音频需要用到AVFoundation.framework框架 二.音效的播放 1.获得音效文件的路径 NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav&qu

JAVA基础篇八(Java,C++中的网络)

基础篇写到这里,C++和JAVA的基础知识也要讲完了,至于更深入的使用,则需要单独寻找每种语言特有的类库. 讲到网络,不可避免地要讲TCP/IP的基本使用方法.本文只对两种语言的网络实现做简单介绍,后续学习中如果有详细说明,会逐步添加到本文中. 1.C++网络知识 简单的TCP/IP: server端: #include <WINSOCK2.H> #include <stdio.h> #pragma comment(lib,"ws2_32.lib") void

Deep learning:三十八(Stacked CNN简单介绍)

http://www.cnblogs.com/tornadomeet/archive/2013/05/05/3061457.html 前言: 本节主要是来简单介绍下stacked CNN(深度卷积网络),起源于本人在构建SAE网络时的一点困惑:见Deep learning:三十六(关于构建深度卷积SAE网络的一点困惑).因为有时候针对大图片进行recognition时,需要用到无监督学习的方法去pre-training(预训练)stacked CNN的每层网络,然后用BP算法对整个网络进行fin

iOS基础篇(十五)——UIScrollView的基本用法

滚动视图(UIScrollView)通常用于显示内容尺寸大于屏幕尺寸的视图. 一.基本属性 1.CGSize contentSize :设置UIScrollView的滚动范围 2.CGPoint contentOffset :UIScrollView当前滚动的位置 3.UIEdgeInsets contentInset :设置内容的边缘 4.BOOL bounces 当超出边界时表示是否可以反弹 5.BOOL scrollEnabled 是否能滚动 6.BOOL showsHorizontalS

ios基础篇(十八)——Delegate 、NSNotification 和 KVO用法及其区别

一.Delegate Delegate本质是一种程序设计模型,iOS中使用Delegate主要用于两个页面之间的数据传递.iphone中常用@protocol和delegate的机制来实现接口的功能.例如想在A的功能要在B中实现,可以在A中定义一个Protocol. protocol用法: @interface ClassA :ClassB<protocol1, protocol2> 1.首先声明一个UIView类: @interface myView  :UIView{  } @end: 2

iOS开发Swift篇—(一)简单介绍

一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C一样,可以用于开发iOS.Mac应用程序 苹果从2010年7月开始设计Swift语言,耗时4年打造 Swift的语法特点 从它的语法中能看到Objective-C.JavaScript.Python等语言的影子 语法简单.代码简洁.使用方便 可与Objective-C混合使用(相互调用) 为什么要设计Swift语言? 让应用开发更简

iOS开发UI篇—UITableview控件简单介绍

一.基本介绍 在众多移动应?用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UITableView继承自UIScrollView,因此支持垂直滚动,?且性能极佳 . UITableview有分组和不分组两种样式,可以在storyboard或者是用代码设置. 二.数据展示 UITableView需要?一个数据源(dataSource)来显示数据UITableView会向数据源查询一共有多少行数据以及每?行显示什么数据等 没有设置数据源