一般TableBar放置在屏幕的最下方会有很多平级的按钮,用户可以击不同的按钮切换屏幕中显示的视图,TableBar可以使用系统自带的也可以自己继承重写它的方法实现自定义TableBar,今天我们主要讨论系统自带的TableBar的简单使用。

如上图所示,系统自带的TableBar屏幕中最多只可以放置5个,如果超过5个系统会自动生成一个More按钮,会将超出的以一个列表的形式展现出来,贴出代码我们分析一下。

NSMutableArray * controllers : 存放TableBar中的每一个Item,最后将它整体显示在屏幕中。

NSArray *item :存放着须要在分页栏中显示的名称,之后使用for循环依次遍历 ,将其添加入显示视图。

TableViewController :控制TableBar点击后的显示视图。

最后把它添加到显示视图当中。。

TableViewAppDelegate.m

C#

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

#import "TableViewAppDelegate.h"

#import "TableViewController.h"

@implementationTableViewAppDelegate

@synthesizewindow=_window;

-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions

{

NSMutableArray*controllers=[NSMutableArrayarray];

NSArray*item=[NSArrayarrayWithObjects:@"雨松MOMO",@"若若娃",@"小可爱",@"哇咔咔",@"小老虎",@"学苹果",@"快乐乐",@"寿司卷",nil];

//数组数量

intcount=[itemcount];

for(inti=0;i

{

//创建TableViewController

TableViewController*tabViewController=[[TableViewControlleralloc]initController:[itemobjectAtIndex:i]];

//设置标题

[tabViewControllersetTitle:@"雨松MOMO的程序世界"];

//绑定tabViewController用来响应按钮点击事件

UINavigationController*nav=[[UINavigationControlleralloc]initWithRootViewController:tabViewController];

//设置标题

nav.title=[itemobjectAtIndex:i];

//设置图片

nav.tabBarItem.image=[UIImageimageNamed:@"title.png"];

//设置风格为默认风格

nav.navigationBar.barStyle=UIBarStyleDefault;

//添加这个UINavigationController

[controllersaddObject:nav];

//释放对象

[navrelease];

}

//创建UITabBarController,将显示的内容添加进去

UITabBarController*bar=[[UITabBarControlleralloc]init];

bar.viewControllers=controllers;

bar.customizableViewControllers=controllers;

//添加到显示窗口中

[self.windowaddSubview:bar.view];

// Override point for customization after application launch.

[self.windowmakeKeyAndVisible];

returnYES;

}

@end

如下图所示,多余的Item会以列表的形式展示。

-(id) initController:(NSString *)str :用于初始化,将显示内容传入。创建TableBar的时候将名称作为参数传入这样每次切换的时候知道用户点击了那个按钮。这个例子用户切换点击按钮的时候将切换顶部的显示内容。

-(void)viewDidLoad:这个方法很重要,用户没按点击按钮都会重新加载,因为上面设置了每个Item的Controller都是TableViewController,如果每个页面显示的内容都不确定的话,可以多写几个Controller类来控制每一个Table页面的切换。

里面的代码我就不多解释了,之前的博文有详细的说明噢~

TableViewController.m

C#

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

#import "TableViewController.h"

@implementationTableViewController

-(id)initController:(NSString*)str

{

self=[superinit];

if(self)

{

//每次点击新的标签,将显示内容值赋给showString

showString=str;

}

returnself;

}

-(void)viewDidLoad

{

[superviewDidLoad];

//创建label视图

UILabel*label=[[UILabelalloc]initWithFrame:CGRectMake(0,0,320,30)];

//设置显示内容

label.text=[NSStringstringWithFormat:@"%@%@",@"您选中了",showString];

//设置背景颜色

label.backgroundColor=[UIColorblueColor];

//设置文字颜色

label.textColor=[UIColorwhiteColor];

//设置显示位置居中

label.textAlignment=UITextAlignmentCenter;

//设置字体大小

label.font=[UIFontfontWithName:[[UIFontfamilyNames]objectAtIndex:10]size:20];

//创建图片视图

UIImageView*imageview=[[UIImageViewalloc]initWithFrame:

CGRectMake(100,150,120,120)];

//设置图片的显示的资源路径

[imageviewsetImage:[UIImageimageNamed:@"0.jpg"]];

//添加到视图中

[self.viewaddSubview:label];

[self.viewaddSubview:imageview];

//释放对象

[labelrelease];

[imageviewrelease];

}

-(void)viewDidUnload

{

[superviewDidUnload];

// Release any retained subviews of the main view.

// e.g. self.myOutlet = nil;

}

@end

最后如果你还是觉得我写的不够详细 看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习雨松MOMO希望可以和大家一起进步。今天和同事出去踢球去了,出了好多汗太爽了~~ MOMO建议大家在工作之余多多加强锻炼,身体可是革命的本钱哦,哇咔咔~~

最后编辑:2012-08-09作者:雨松MOMO

专注移动互联网,Unity3D游戏开发

捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

ios tabbar插件_IOS研究院之分页栏TabBar的使用(四)相关推荐

  1. ios tabbar插件_iOS自定义TabBar

    iOS自定义TabBar一般有两种方式: 创建一个类继承字UITabBar,在layoutSubviews方法中重新调整按钮的位置,再通过[self setValue:tabBar forKeyPat ...

  2. iOS资料-插件第三方文章

    文/零距离仰望星空(简书作者) 原文链接:http://www.jianshu.com/p/f6cdbc8192ba 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". ...

  3. uni-app小程序onShow执行两次;微信小程序onShow重复执行原因;导航栏tabBar页的onLoad函数不执行;App.vue页的onShow执行原因;onShow莫名其妙执行

    1.只有五种情况会触发导航栏tabBar页的onLoad函数,分别是: –1.1:首次进入到导航栏tabBar页面: –1.2:从微信分享进入的导航栏tabBar页面: –1.3:识别二维码跳转到小程 ...

  4. 小程序 底部导航栏(tabBar)图标的正确做法

    许多人都认为小程序系统的底部导航栏特别不好看,为了美观而选择自定义,从此身陷漩涡无法自拔.其实真正的原因是图标的图片处理不当(说白了就是前端和设计太菜了),导致会有线条变粗,间距不当的视觉感受. 除小 ...

  5. sencha touch 模仿tabpanel导航栏TabBar(2013-11-7)

    基于sencha touch 2.2所写 代码: 1 /* 2 *模仿tabpanel导航栏 3 */ 4 Ext.define('ux.TabBar', { 5 alternateClassName ...

  6. jQueryPager(JQuery分页插件pagination实现Ajax分页)

    jQueryPager(JQuery分页插件pagination实现Ajax分页) 下载地址 jQueryPager(JQuery分页插件pagination实现Ajax分页).rar 转载于:htt ...

  7. EasyUI的DataGrid 分页栏英文改中文解决方案

    EasyUI的DataGrid 分页栏英文改中文解决方案 参考文章: (1)EasyUI的DataGrid 分页栏英文改中文解决方案 (2)https://www.cnblogs.com/tahn30 ...

  8. cordova ios升级插件

    org.ssgroup.sope.cordova.upgrade 支持强制升级与选择升级 插件已经开源在https://github.com/shenshouer/org.ssgroup.sope.c ...

  9. python开发ios插件_[原创]Textobot-换个轻松高效的方式开发iOS越狱插件

    许愿:要是段老师的看雪平台能导入头条或者公众号的文章就好了. 导读 0x00.交个朋友 0x01.越狱开发 0x02.Cydia插件体系 0x03.Cydia插件开发 0x04.Textobot插件体 ...

最新文章

  1. Android 触摸事件处理机制
  2. 2021年Kaggle所有赛事TOP方案汇总
  3. java如何限制输入值_[限制input输入类型]常用限制input方法
  4. 使用duilib开发半透明异形窗体程序(附源码和demo)
  5. Keras-9 实现Seq2Seq
  6. react离开页面,自定义弹框拦截,路由拦截
  7. HTML5学习笔记之音视频标签
  8. 狂神说Linux学习笔记
  9. 虾皮物流好不好SLS 异常件怎么处理?
  10. 谷歌插件.crx文件无法安装
  11. iOS9获取手机序列号serialNumber(UDID)
  12. spark Streaming 流计算
  13. sysvol 域控制器 文件_重建域控SYSVOL和NETLOGON共享
  14. 【报告分享】德勤:2023中国消费者洞察与市场展望.pdf(附下载链接)
  15. html 的函数写法,react中函数的不同写法的区别是什么?
  16. 〖Python 数据库开发实战 - Python与Redis交互篇⑪〗- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis
  17. pfa100_PFA 是什么意思?
  18. 【数字IC快速入门】linux基本操作
  19. 电脑基础知识-C盘里那些文件可以删哪些不能删
  20. Cesium 点击广告牌(Billboard)显示自定义文字信息展示弹框(vue项目记录)

热门文章

  1. .Net Framework SqlClient 数据提供程序不支持 CommandType 枚举值 512
  2. iOS AVAsset
  3. 页面报错parsererror
  4. Python turtle库改变海龟速度的几种方法
  5. 本地jar包加载后,运行时报java.lang.NoClassDefFoundError解决方案
  6. 【飞桨】【图像分类】【PaddlePaddle】柠檬分类流程及部分踩坑
  7. linux取消管理员权限设置,Linux添加用户并赋予/取消管理员权限
  8. Jetson TX2挂载SD卡--亲测有效!
  9. 家用投影仪推荐一下哪款比较好,10大国产品牌推荐建议一定要看
  10. Android中画中画模式的使用