TabBarViewController:标签视图控制器

在application设置

创建四个视图控制器

引入视图控制器头文件

 #import "AppDelegate.h"

 #import "RootTableViewController.h"
#import "FirstTableViewController.h"
#import "SecondTableViewController.h"
#import "ThirdTableViewController.h"

在application里设置TabBarViewController

设置选中图片有很多种方式,一般会用不进行渲染的方式

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// 第一步:创建window
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible]; // 第二步:创建UITabBarController对象
UITabBarController *mainTab = [[UITabBarController alloc] init]; // 第三步:设置window的根视图控制器
self.window.rootViewController = mainTab; // 第四步:设置UITabBarController的控制器数组
// 创建导航控制器并指定导航控制器的根视图控制器
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[RootTableViewController alloc] init]];
// 设置导航控制器的TabBarItem
// UIImageRenderingModeAlwaysOriginal 设置选中图片保留原有的样式,不进行渲染
nav.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"微信" image:[[UIImage imageNamed:@"tabbar_mainframe@3x"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"tabbar_mainframeHL@3x"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; UINavigationController *fnav = [[UINavigationController alloc] initWithRootViewController:[[FirstTableViewController alloc] init]];
UIImage *image1 = [[UIImage imageNamed:@"tabbar_contacts@3x"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
// 设置选中图片保留原有的样式,不进行渲染
UIImage *image2 = [[UIImage imageNamed:@"tabbar_contactsHL@3x.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
fnav.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"通讯录" image:image1 selectedImage:image2]; UINavigationController *snvc = [[UINavigationController alloc] initWithRootViewController:[[SecondTableViewController alloc] init]];
snvc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"发现" image:[UIImage imageNamed:@"tabbar_discover@3x"] tag:]; UINavigationController *tnvc = [[UINavigationController alloc] initWithRootViewController:[[ThirdTableViewController alloc] init]];
tnvc.tabBarItem.title = @"我";
tnvc.tabBarItem.image = [UIImage imageNamed:@"tabbar_meHL@3x"]; // 把导航视图控制器添加到标签视图控制器上
// 添加单一的控制器用:addChildViewController即可
// [mainTab addChildViewController:nav];
// [mainTab addChildViewController:fnav];
// [mainTab addChildViewController:snvc];
// [mainTab addChildViewController:tnvc];
// 将导航控制器对象添加到数组中
// 数组是有序的,按顺序管理
mainTab.viewControllers = @[nav,fnav,snvc,tnvc]; // 设置进入应用选中第几个
mainTab.selectedIndex = ; // TabBar 的属性
// 设置选中控件的颜色
mainTab.tabBar.tintColor = [UIColor greenColor]; // 设置tabBar的属性
mainTab.tabBar.tintColor = [UIColor colorWithRed: / 255.0 green: / 255.0 blue: alpha:]; // 半透明效果
// mainTab.tabBar.translucent = NO; // 设置tabBar的颜色
// mainTab.tabBar.barTintColor = [UIColor blueColor]; // 改变TabBar的位置
// [fnav.tabBarItem setTitlePositionAdjustment:UIOffsetMake(50, 10)]; #pragma mark UIApperance - 设置全部item的属性
// 导航栏的背景颜色
[UINavigationBar appearance].barTintColor = [UIColor lightGrayColor];
// 导航栏字体的颜色
[UINavigationBar appearance].barStyle = UIBarStyleBlack;
// 导航栏添加item的颜色
[UINavigationBar appearance].tintColor = [UIColor orangeColor]; // 设置提示
// 汉字显示四个
// 数字显示八个
snvc.tabBarItem.badgeValue = @"999999+"; // 设置代理
mainTab.delegate = self; return YES;
}

实现清空badgeValue的方法

 // 实现方法 , 点击后清空badgeValue
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { viewController.tabBarItem.badgeValue = nil; }

QQ多了一个统一按钮

// 添加统一的左按钮
    self.tabBarController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leftBarButtonItemAction:)];

复习知识点:TabBarViewController(微信框架)的更多相关文章

  1. JavaEE期末复习知识点总结

    JavaEE期末复习知识点总结 Java企业应用开发环境 Maven的基础概念 Maven是一个项目管理工具,可以对 Java 项目进行构建.依赖管理 Maven仓库 Maven 仓库是项目中依赖的第 ...

  2. NBIbatis 微信框架

    微信框架 必须先完成NBIbatis基础框架的[框架配置],本项目才能正常运行. 漂亮会议展示 这是一套漂亮的会议展示完整界面/ ForePages/ HomePage_1210.htm Wechat ...

  3. C#开发微信门户及应用(48) - 在微信框架中整合CacheManager 缓存框架

    在我们的很多框架或者项目应用中,缓存在一定程度上可以提高程序的响应速度,以及减轻服务器的承载压力,因此在一些地方我们都考虑引入缓存模块,这篇随笔介绍使用开源缓存框架CacheManager来实现数据的 ...

  4. 微信小程序开发系列六:微信框架API的调用

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  5. 在微信框架模块中,基于Vue&Element前端,通过动态构建投票选项,实现单选、复选的投票操作

    最近把微信框架的前端改造一下,在原来基于Bootstrap框架基础上的微信后台管理,增加一套Vue&Element的前端,毕竟Vue的双向绑定开发起来也还是很方便的,而且Element本身也提 ...

  6. 在微信框架模块中,基于Vue&Element前端的后台管理功能介绍

    微信开发包括公众号.企业微信.微信小程序等方面的开发内容,需要对腾信的微信API接口进行封装:包括事件.菜单.订阅用户.多媒体文件.图文消息.消息群发.微信支付和企业红包.摇一摇设备.语义理解.微信小 ...

  7. 在微信框架模块中,基于Vue&Element前端的事件和内容的管理

    在微信后台管理中,我们需要定义好菜单对应的事件管理,因为微信通过菜单触发相关的事件,因此菜单事件的响应关系,我们如果处理好,就能构建出我们的微信应用入口了.通过入口,我们可以响应用户菜单的事件,如响应 ...

  8. 在微信框架模块中,基于Vue&Element前端的微信公众号和企业微信的用户绑定

    在一个和微信相关的业务管理系统,我们有时候需要和用户的微信账号信息进行绑定,如对公众号.企业微信等账号绑定特定的系统用户,可以进行扫码登录.微信信息发送等操作,用户的绑定主要就是记录公众号用户的ope ...

  9. html常用的知识点以及混合框架

    html中:   <hr/> 在页面中创建水平线 例如:   <p> p标签是定义段落   > alt 作为可预备可替换信息,在无法加载图片时显示文字信息   定义htm ...

随机推荐

  1. 前缀 树 背单词(Remember the Word,LA 3942)

    已哭瞎. 搞了2个多小时的错误居然是在  没有初始化............教训:每个例子一定要考虑到初始化问题.! 每个节点存了一个数组  该数组记录的有26个大小  0-25分别表示记录表示'a' ...

  2. Foundation NSMutableArray遍历,选取出符合条件的所有对象

    一.查找数组中一个元素,找到后立即返回 当遍历数组只需要返回其中一个符合条件的元素时,使用 indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, ...

  3. wpf 如何设置滚动条在超出范围的时候才显示?(转)

    VerticalScrollBarVisibility="Auto"  垂直自动显示 HorizontalScrollBarVisibility="Auto" ...

  4. C# 微信公众平台开发(3)-- 接受/发送消息

    1.接收事件 关注/取消关注事件: 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL. 通过微信返回的XML,我们通过代码 就可以作相应的处理: 先获取返回的信息: if (Ht ...

  5. 线段树讲解(数据结构、C++)

    声明    : 仅一张图片转载于http://www.cnblogs.com/shuaiwhu/archive/2012/04/22/2464583.html,自己画太麻烦了...那个博客的讲解也很好 ...

  6. PHP输出中文乱码的解决方法

    最近在windows上发现PHP程序中输出来的中文有乱码的情况. 看了很多帖子资料说可以在页面上添加: http://www.cnblogs.com/leandro/archive/2008/04/2 ...

  7. C#_socket拆包_封包_模拟乱序包

    拆包一直是个硬伤呀,MLGB的,服务端各种乱数据,果断整理下 拆包思路:设计一个网络协议,一般都会分包,一个包就相当于一个逻辑上的命令. .如果我们用udp协议,省事的多,一次会收到一个完整的包,但U ...

  8. mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库

    简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠 ...

  9. Storm几篇文章

    http://tianhailong.com/ http://www.cnblogs.com/panfeng412/archive/2012/07/02/storm-common-patterns-o ...

  10. Mac OS X Mavericks or Yosemite 安装Nginx、PHP、Mysql、phpMyAdmin

    翻译:http://blog.frd.mn/install-nginx-php-fpm-mysql-and-phpmyadmin-on-os-x-mavericks-using-homebrew/ 最 ...