首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ios中UINavigation和UITabBar的结合

ios中UINavigation和UITabBar的结合

作者头像
Cloudox
发布2021-11-23 10:39:50
发布2021-11-23 10:39:50
59200
代码可运行
举报
文章被收录于专栏:月亮与二进制月亮与二进制
运行总次数:0
代码可运行

基本现在常见的应用里单一使用Navigation导航栏或者单独使用TabBar的情况已经不多见了,除非是特别专一的应用方式,否则常常会见到两种布局方式结合起来,自己在做第一个项目的时候也是遇到了这个需求,当时也是纠结了一些小问题,这里说一下我的方法。

其实想法很简单,是一个多层包装的模式,也就是先分别把自己有导航需求的界面创建出来之后,分别用UINavigationController把这几个界面控制器包装起来,然后初始化一个一个TabBar包含几个Navigation,每个Navigation再包含各自的界面控制器的结构,代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
//创建两个自己的界面控制器  
ViewControllerOne *one = [[ViewControllerOne alloc]initWithNibName:@"ViewControllerOne" bundle:nil];  
ViewControllerTwo *two= [[ViewControllerTwo alloc]initWithNibName:@"ViewControllerTwo" bundle:nil];  
//分别用导航栏控制器包装起来  
UINavigationController *NavViewOne = [[UINavigationController alloc]initWithRootViewController:one];  
UINavigationController *NavViewTwo = [[UINavigationController alloc]initWithRootViewController:two];  
//初始化TabBar控制器  
UITabBarController *tabBar = [[UITabBarController alloc]init];  
//把两个导航栏控制器添加到TabBar控制器中去  
[tabBar setViewControllers:[NSMutableArray arrayWithObjects:NavViewOne, NavViewTwo, nil nil];  
tabBar.view.frame = CGRectMake(0, -20, 320, 480);//不加这一句将会有一段状态栏高度的空白区域  

此外,导航栏的标题可以在各个页面中自行设置,比如在viewDidload方法中,如下:

代码语言:javascript
代码运行次数:0
运行
复制
self.title = @"标题"  

要设置各个界面的tab样式,可以在initWithNibName方法中加入如下代码:

代码语言:javascript
代码运行次数:0
运行
复制
ITabBarItem *item = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1];//设置tabbar样式  
self.tabBarItem = item;  
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/11/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档