UITabBarController+UINavigationController多层嵌套

来源:互联网 发布:java性能测试环境搭建 编辑:程序博客网 时间:2024/05/16 09:25

 

 来自会员z304983615的分享:

网上有海量的关于创建UITabBarController实例的代码,不过99%都是在AppDelegate中创建并作为App的根视图。但是,并不见得UITabBarController就一定要作为App的根视图存在。下面提供的这个demo就是在某个视图控制器中创建出来的(且标签的viewControllers全都是导航栏控制器),并且该视图控制器将做为一个UINavigationControllerrootViewController,然后将这个UINavigationControllerview加到其他别的视图控制器的view中。从而实现了RT所述的UINavigationController+UITabBarController多层嵌套。

 

不过,在UI上有个小Bug,就是显示出来的标签栏控制器的view会下移一段状态栏的高度。楼主为这个真是百思不得其解阿。 但是,最后设置了UITabBarControllerviewframe(0,-20,320,480)才将问题解决(设置为(00320460)不能解决问题)

 

下面是部分代码

UINavigationController嵌套带有UITabBarController的视图控制器:

 

-(void)viewDidLoad 

   [super viewDidLoad]; 

 

   if (mainNav == nil) { 

       MainViewController *mainViewController = [[MainViewControlleralloc] initWithNibName:nil bundle:nil];  

       mainNav = [[UINavigationController alloc]initWithRootViewController:mainViewController]; 

       [mainViewController release]; 

   } 

   mainNav.view.frame = CGRectMake(0.0, 0.0, 320.0, 460.0); 

mainNav.view.backgroundColor= [UIColor blackColor]; 

   [self.view addSubview:mainNav.view]; 

 

 

实例化UITabBarController:

 

-(void)viewDidLoad 

   [super viewDidLoad]; 

 

self.navigationController.navigationBarHidden= YES; 

 

   if (tabBarCon == nil) { 

       tabBarCon = [[UITabBarController alloc] init]; 

       FirstViewController *firstViewController =[[FirstViewController alloc] initWithNibName:nil bundle:nil]; 

       UINavigationController *firstNav =[[UINavigationController alloc]initWithRootViewController:firstViewController]; 

       SecondViewController *secondViewController =[[SecondViewController alloc] initWithNibName:nil bundle:nil]; 

       UINavigationController *secondNav =[[UINavigationController alloc]initWithRootViewController:secondViewController]; 

       tabBarCon.viewControllers = [NSArrayarrayWithObjects:firstNav,secondNav, nil]; 

   } 

/*******************************************************************************************************/ 

tabBarCon.view.frame= CGRectMake(0.0, -20.0, 320.0, 480.0);//这句很关键,不加这句将会有一段状态栏高度的空白区域 

/*******************************************************************************************************/ 

   [self.view addSubview:tabBarCon.view]; 

 

demo

/cms/uploads/soft/130830/4196-130S0161214.zip

 

原帖:http://www.cocoachina.com/bbs/read.php?tid=140083

CocoaChina是全球最大的苹果开发中文社区,官方微信每日定时推送各种精彩的研发教程资源和工具,介绍app推广营销经验,最新企业招聘和外包信息,以及Cocos2d引擎、CocosStudio开发工具包的最新动态及培训信息。关注微信可以第一时间了解最新产品和服务动态,微信在手,天下我有!

请搜索微信号“CocoaChina”关注我们!

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老师每天打孩子怎么办 小孩不想去幼儿园怎么办 宝宝不想上幼儿园怎么办 小孩不爱学英语怎么办 孩子抵触学英语怎么办 初三了英语不好怎么办 孩子入园焦虑怎么办 家长总是说孩子怎么办 幼师打了小朋友怎么办 幼儿园老师欺负孩子怎么办 被老师冷落怎么办豆瓣 不满老师对孩子怎么办 老师总找茬孩子 怎么办 老师总针对孩子怎么办 老师看你不舒服怎么办 高中孩子不爱学习怎么办 孩子太倔不听话怎么办 老师老说孩子怎么办 孩子13不懂礼貌怎么办 老师不重视你 怎么办 我娃好动不听话怎么办 初三娃不听话该怎么办 小孩爱动不听话怎么办 宝宝吃饭讨神怎么办 孩子速度太慢怎么办 一年级做作业慢怎么办 小学三年级数学差怎么办 拼音基础太差怎么办 小孩学拼音差怎么办? 孩子字词基础差怎么办 孩子的语文不好怎么办 数学一直学不好怎么办 小孩数学成绩差怎么办 理科生语文不好怎么办 小学阅读题不好怎么办 如果孩子考不好怎么办 6岁不认识数字怎么办 数学一点都不会怎么办 初一数学太差怎么办 三年级孩子数学差怎么办 三年级孩子数学很差怎么办