复习知识点:TabBarViewController(微信框架)

TabBarViewController:标签视图控制器

在application设置

创建四个视图控制器

引入视图控制器头文件

1 #import "AppDelegate.h"
2
3 #import "RootTableViewController.h"
4 #import "FirstTableViewController.h"
5 #import "SecondTableViewController.h"
6 #import "ThirdTableViewController.h"

在application里设置TabBarViewController

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

 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 2     // Override point for customization after application launch.
 3     // 第一步:创建window
 4     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
 5     self.window.backgroundColor = [UIColor whiteColor];
 6     [self.window makeKeyAndVisible];
 7
 8     // 第二步:创建UITabBarController对象
 9     UITabBarController *mainTab = [[UITabBarController alloc] init];
10
11     // 第三步:设置window的根视图控制器
12     self.window.rootViewController = mainTab;
13
14     // 第四步:设置UITabBarController的控制器数组
15     // 创建导航控制器并指定导航控制器的根视图控制器
16     UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[RootTableViewController alloc] init]];
17     // 设置导航控制器的TabBarItem
18     // UIImageRenderingModeAlwaysOriginal 设置选中图片保留原有的样式,不进行渲染
19     nav.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"微信" image:[[UIImage imageNamed:@"[email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"[email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
20
21     UINavigationController *fnav = [[UINavigationController alloc] initWithRootViewController:[[FirstTableViewController alloc] init]];
22     UIImage *image1 = [[UIImage imageNamed:@"[email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
23     // 设置选中图片保留原有的样式,不进行渲染
24     UIImage *image2 = [[UIImage imageNamed:@"[email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
25     fnav.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"通讯录" image:image1 selectedImage:image2];
26
27     UINavigationController *snvc = [[UINavigationController alloc] initWithRootViewController:[[SecondTableViewController alloc] init]];
28     snvc.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"发现" image:[UIImage imageNamed:@"[email protected]"] tag:102];
29
30     UINavigationController *tnvc = [[UINavigationController alloc] initWithRootViewController:[[ThirdTableViewController alloc] init]];
31     tnvc.tabBarItem.title = @"我";
32     tnvc.tabBarItem.image = [UIImage imageNamed:@"[email protected]"];
33
34     // 把导航视图控制器添加到标签视图控制器上
35     // 添加单一的控制器用:addChildViewController即可
36 //    [mainTab addChildViewController:nav];
37 //    [mainTab addChildViewController:fnav];
38 //    [mainTab addChildViewController:snvc];
39 //    [mainTab addChildViewController:tnvc];
40     // 将导航控制器对象添加到数组中
41     // 数组是有序的,按顺序管理
42     mainTab.viewControllers = @[nav,fnav,snvc,tnvc];
43
44     // 设置进入应用选中第几个
45     mainTab.selectedIndex = 1;
46
47     // TabBar 的属性
48     // 设置选中控件的颜色
49     mainTab.tabBar.tintColor = [UIColor greenColor];
50
51     // 设置tabBar的属性
52     mainTab.tabBar.tintColor = [UIColor colorWithRed:15 / 255.0 green:178 / 255.0 blue:0 alpha:1];
53
54     // 半透明效果
55     //    mainTab.tabBar.translucent = NO;
56
57     // 设置tabBar的颜色
58     //    mainTab.tabBar.barTintColor = [UIColor blueColor];
59
60     // 改变TabBar的位置
61     //    [fnav.tabBarItem setTitlePositionAdjustment:UIOffsetMake(50, 10)];
62
63 #pragma mark UIApperance - 设置全部item的属性
64     // 导航栏的背景颜色
65     [UINavigationBar appearance].barTintColor = [UIColor lightGrayColor];
66     // 导航栏字体的颜色
67     [UINavigationBar appearance].barStyle = UIBarStyleBlack;
68     // 导航栏添加item的颜色
69     [UINavigationBar appearance].tintColor = [UIColor orangeColor];
70
71
72     // 设置提示
73     // 汉字显示四个
74     // 数字显示八个
75     snvc.tabBarItem.badgeValue = @"999999+";
76
77     // 设置代理
78     mainTab.delegate = self;
79
80     return YES;
81 }

实现清空badgeValue的方法

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

时间: 2024-10-14 14:15:10

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

计算机网络笔试题 详细分析复习知识点

1.在无盘工作站向服务器申请IP地址时,使用的是(     )协议. A.ARP B.RARP C.ICMP D.IGMP 解析: ARP工作机制 : A的ARP表中没有B的IP MAC 对应条目则发送ARP广播包,请求B的MAC地址 在全网"呼叫" 当B听到有机器"嚎叫"就返回一个数据包告诉你"我的MAC是X"然后双方就可以通信了,在A"嚎叫"的时候,A需要把IP和MAC地址广播出去用于B返回信息, 之后AB更新自己的ARP

jQuery复习知识点(2、创建节点 3、插入节点)

创建节点的语法: $(html); 插入节点的语法: 话不多说直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery复习知识点(2.创建节点 3.插入节点)</title> <script type="text/javascript"src="../j

Python爬虫知识点四--scrapy框架

一.scrapy结构数据 解释: 1.名词解析: o??引擎(Scrapy Engine)o??调度器(Scheduler)o??下载器(Downloader)o??蜘蛛(Spiders)o??项目管道(Item Pipeline)o??下载器中间件(Downloader Middlewares)o??蜘蛛中间件(Spider Middlewares)o??调度中间件(Scheduler Middlewares) 2.具体解析 绿线是数据流向??从初始URL开始,Scheduler会将其交给Do

18-10-15 rpa 7.0 设计器新增的一些控件知识和一些基础性知识复习知识点遇到的问题与案例总结

  0 因为版本问题 设计器提示 win 32 api 报错,此时pycharm 中的pywin32 删掉解决问题,因为pycharm 安装的的是32位,而设计器是64 ?  1 图片检测返回的是布尔值,截图返回的是路径  2 消息框 返回的是布尔值和输出(相当于print) 3 截图+验证码的联合使用(验证码就是集成了ocr 了)注意截图的文件夹保存  4 关于关闭窗口ie为例,网页为例 方式一 运用窗口关闭 方式二 运用快捷键ctrl+w  or ctrl+f4 关闭当前网页  5关于cs

复习知识点:GCD多线程

GCD的基础 1 #pragma mark - 使用GCD 创建一个 串行 队列 2 // 第一种:系统提供的创建串行队列的方法 3 // 在真正的开发中如果需要创建串行队列,比较习惯用这种 4 // dispatch_queue_t queue = dispatch_get_main_queue(); 5 6 #pragma mark - 使用GCD去创建 并行 队列 7 // 第一种:系统的 8 // 参数1:表示优先级(有四个,没有明显区别) 9 // 参数2:系统保留字 10 // di

复习知识点:UITableView和UICollectionView的常用属性

UITableView UICollectionView  //UICollectionViewLayout //UICollectionViewLayout决定了UICollectionView如何显示在界面上,Apple提供了一个最简单的默认layout对象:UICollectionViewFlowLayout. //Flow Layout是一个Cells的线性布局方案,并具有页面和页脚.其可定制的内容如下: //itemSize属性 //设定全局的Cell尺寸,如果想要单独定义某个Cell

复习知识点:XML解析数据,JOSN解析数据,GET请求数据,POST请求数据

GDataXMLDocument-XML解析 1 #pragma mark - ======== Dom XML解析 2 - (IBAction)domParserActionXML_Document:(id)sender { 3 4 // 第一步 引入动态库 5 // 1 获取文件路径 6 NSString *Path = [[NSBundle mainBundle] pathForResource:@"StudentIfor_xml" ofType:@"txt"

ssh框架复习

1.Hibernate中实体类的创建规则是什么? 2.hibernate中实体类的三种状态? 三种状态: 3.hibernate中的批量查询的三种方式 4.填写下面级联操作: 级联保存:casecade="save-update" 级联删除:casecade="delete" 级联保存+级联删除:casecade="all" 5.struts2核心过滤器加载配置文件的顺序是什么样的, 如果在各个配置文件配置同一个常量,最终生效的是哪个? 加载顺序

AEAI WX 微信扩展框架 V1.0 版发版说明

AEAI WX 微信扩展框架是基于 Java 封装的微信公众号二次开发框架,基于该框架可以快速接入微信,实现自定义菜单创建.信息按规则自动回复.集成企业的线上系 统(HR.CRM.微店.网站等).同时可以整合集成互联网开放资源(如:百度地图.天气预报.热映电影等). AEAI WX的框架包括两个工程 aeaiwx_core(java工程).aeaiwx(java web工程),架构框图如下所示: AEAI WX提供嵌入使用.独立使用两种模式.嵌入使用模式直接把aeaiwx相关jar包放置于目标J