刚看了几天教程就开始跟着开发了,以前也没学过C,太痛苦了~只能看看大神的博客,自己再总结学习一下了。

1.首先新建一个TabBarViewController继承于UITabBarController。然后什么都不用写,相当于装各个tab页的容器。

2.给每个视图都写一个类,继承于UIViewController,然后只要在viewDidLoad里写属性就ok。除了下面的WebChatViewController还写了一个ContactViewController。

#import "WebChatViewController.h"

@implementation WebChatViewController

- (void)viewDidLoad {
[super viewDidLoad]; self.view.backgroundColor = [UIColor redColor];//视图背景颜色 self.title = @"Chat";//视图控制器的标题 self.tabBarItem.title = @"Web Chat";//标签上显示的名称
self.tabBarItem.image = [UIImage imageNamed:@"tabbar_mainframe.png"];//标签上显示的图片
self.tabBarItem.selectedImage = [UIImage imageNamed:@"tabbar_mainframeHL.png"];//选中后的图片
self.tabBarItem.badgeValue = @"";//红泡泡 //下面两行暂时还不太理解。。。
//注意通过tabBarController或者parentViewController可以得到其俯视图控制器(也就是TabBarViewController)
NSLog(@"%i",self.tabBarController==self.parentViewController);//对于当前应用二者相等 } @end

3.在AppDelegate.m里设置TabBar视图为根视图,修改第一个BOOL型的方法即可。

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

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

    //初始化
TabBarViewController *tabBarController = [[TabBarViewController alloc] init];
WebChatViewController *webChatController = [[WebChatViewController alloc] init];
ContactViewController *contactController = [[ContactViewController alloc] init]; //把需要的tab都加进去
tabBarController.viewControllers = @[webChatController,contactController]; //注意默认情况下UITabBarController在加载子视图时是懒加载的,所以这里调用一次contactController,否则在第一次展示时只有第一个控制器tab图标,contactController的tab图标不会显示
for (UIViewController *controller in tabBarController.viewControllers){
UIViewController *view = controller.view;
} _window.rootViewController = tabBarController;
[_window makeKeyAndVisible]; return YES;
}

运行结果如下:

导航:

UITabBarController使用总结的更多相关文章

  1. UITabBarController 升级定制

    UITabBarController 定制 特点 用法 1.准备工作: 加入你的相关图片,放入了Assets.xcassets; 导入Categroy文件夹(这个里面的文件,在这里不详细说明了,有疑问 ...

  2. UITabBarController 基本定制

    UITabBarController 定制 特点 用法 1.准备好你的tabBar图片及其他图片(哈哈哈!!!!),我的图片都放在了Assets.xcassets中. 2.导入本工程中的Categro ...

  3. 自定义UITabBarController标签视图控制器

    首先创建一个类,继承自UItabBarController 然后在.m文件中: 这里我有两个宏定义: #define WIDTH (myView.frame.size.width / 4) //我在写 ...

  4. 混合使用UITabBarController和UINavigationController

    混合使用这两个控件的好处是我们可以在NavigationBar添加更多的东西,如标题,按钮等.让用户能够获得更多的信息. UITabBarController的属性ViewControllers接受以 ...

  5. 基本组件的使用——UITabBarController

    和UINavigationController的作用差不多,UITabBarController也可以在多个UIViewController中切换 这个控件的使用相对简单,只需要为该控件的viewCo ...

  6. Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)

    原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...

  7. iOS 怎么设置 UITabBarController 的第n个item为第一响应者?

    iOS 怎么设置 UITabBarController 的第n个item为第一响应者? UITabBarController 里面有个属性:selectedIndex @property(nonato ...

  8. iOS UITabBarController的使用

    UITabBarController 和 UINavigationController 几乎是iOS APP的标配. UITabBarController分栏(标签栏)控制器, 和UINavigati ...

  9. iOS开发UI篇—UITabBarController简单介绍

    iOS开发UI篇—UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...

  10. 你真的了解UITabBarController吗?

    一:首先查看一下关于UITabBarController的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UITabBarController : UIViewCo ...

随机推荐

  1. 初始Java 第一课程DVD项目

    DVDSet 类: DVD DVD    删除功能 实现DVD借出功能 DVD还回功能

  2. VMware Workstation 10+Centos7(64位)共享文件夹

    这一两天一直在研究VMware Workstation自带的共享文件夹的功能,期间出了不少问题,在公司搭建的是vm10.0+centos07,在家搭建的是VM 7+centos07... 公司环境搭建 ...

  3. 四种主要网络IO虚拟化模型

    本文主要为大家简要介绍VMware.Redhat.Citrix.Microsoft主要虚拟化厂商使用的4种主要的虚拟化IO模型 (emulation.para-virtualization.pass- ...

  4. AFNetworking之于https认证

    写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...

  5. Java 根据当前时间获取明天、当前周的周五、当前月的最后一天

    private Date getDateByType(Date date, Integer type) { Calendar calendar = Calendar.getInstance(); ca ...

  6. hdu1754 I Hate It

    题目链接:hdu1754 I Hate It 树状数组学习参考博客:http://blog.csdn.net/u010598215/article/details/48206959 树状数组之前没看懂 ...

  7. 前端常用的几个js判断(一)

    1. 禁止右键点击$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...

  8. .Net Globalization and Localization

    随着互联网的发展日益壮大和活跃,网上购物交易越来越频繁,一个网站支持多种语言在所难免,所以国际化和本地化在现在的网站中的作用越来越大,一个网站的使用量和搜索量有可能受国际化的影响一点.所以在当今做一个 ...

  9. [转]Bat脚本处理ftp超强案例解说

    Bat脚本处理ftp超强案例解说 转自:http://369369.blog.51cto.com/319630/842341   前言:   公司有几百台windows服务器,每次程序更新,如果是一台 ...

  10. linux 下 PHP Notice: session_start(): ps_files_cleanup_dir 报错 问题剖析

    如果在ubuntu/Debian下, 采用apt安装的PHP, 那么在使用Session的时候, 就可能会有小概率遇到这个提示. 代码如下: PHP Notice: session_start(): ...