ios中UINavigation和UITabBar的结合

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

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

//创建两个自己的界面控制器  
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方法中,如下:

self.title = @"标题"  

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

ITabBarItem *item = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemSearch tag:1];//设置tabbar样式  
self.tabBarItem = item;  

作者:http://www.jianshu.com/users/9ec19ab8c802/timeline

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容