首页 编程 软件学院 查看内容

iOS 自定义tabbar 关于push问题 小技巧

2015-1-2 21:43 1037 0

摘要: 在开发的时候,相信大家都用过tabbar ,今天我在写项目的时候也用到了tabbar  紧着着一系列问题就来了  需求:我的项目的主要框架是tabbar ,但是用系统的tab...
关键词: nbsp UINavigationCont Controller roller alloc navigationBarHid initWithRootView tabbar viewcontroller YES

在开发的时候,相信大家都用过tabbar ,今天我在写项目的时候也用到了tabbar  紧着着一系列问题就来了  需求:我的项目的主要框架是tabbar ,但是用系统的tabbar不美观      于是我就自定义了我的tabbar,创建了一个类,继承自UITabBarController,在这个类中我将系统原生的tabbar隐藏了,就写了这样一句话, [objc] view plaincopyprint? self.tabBar.hidden=YES;   self.tabBar.hidden=YES;             然后就是一系列的我们写得不能在熟的代码了,引入viewcontroller的头文件,然后实例化,将viewcontroller都做成带导航的,放到一个数组里,在将这个数组赋给tabbar·像这样   [objc] view plaincopyprint?     TrendFashionViewController *trend=[[TrendFashionViewController alloc] init];   //    UINavigationController *trendNa=[[UINavigationController alloc] initWithRootViewController:trend];    //    trendNa.navigationBarHidden=YES;        LifeResourceViewController *left=[[LifeResourceViewController alloc] init];   //     UINavigationController *leftNa=[[UINavigationController alloc] initWithRootViewController:left];    //    leftNa.navigationBarHidden=YES;        MaintainManageViewController *main=[[MaintainManageViewController alloc] init];   //     UINavigationController *mainNa=[[UINavigationController alloc] initWithRootViewController:main];    //    mainNa.navigationBarHidden=YES;        PerfectSelfPhotoViewController *per=[[PerfectSelfPhotoViewController alloc] init];   //     UINavigationController *perNa=[[UINavigationController alloc] initWithRootViewController:per];    //    perNa.navigationBarHidden=YES;        MicroSoundViewController *mir=[[MicroSoundViewController alloc] init];   //     UINavigationController *mirNa=[[UINavigationController alloc] initWithRootViewController:mir];       // mirNa.navigationBarHidden=YES;        NSArray *arr=[NSArray arrayWithObjects:trend,left,main,per,mir, nil nil];       self.viewControllers=arr;   TrendFashionViewController *trend=[[TrendFashionViewController alloc] init]; // UINavigationController *trendNa=[[UINavigationController alloc] initWithRootViewController:trend]; // trendNa.navigationBarHidden=YES; LifeResourceViewController *left=[[LifeResourceViewController alloc] init]; // UINavigationController *leftNa=[[UINavigationController alloc] initWithRootViewController:left]; // leftNa.navigationBarHidden=YES; MaintainManageViewController *main=[[MaintainManageViewController alloc] init]; // UINavigationController *mainNa=[[UINavigationController alloc] initWithRootViewController:main]; // mainNa.navigationBarHidden=YES; PerfectSelfPhotoViewController *per=[[PerfectSelfPhotoViewController alloc] init]; // UINavigationController *perNa=[[UINavigationController alloc] initWithRootViewController:per]; // perNa.navigationBarHidden=YES; MicroSoundViewController *mir=[[MicroSoundViewController alloc] init]; // UINavigationController *mirNa=[[UINavigationController alloc] initWithRootViewController:mir]; // mirNa.navigationBarHidden=YES; NSArray *arr=[NSArray arrayWithObjects:trend,left,main,per,mir, nil]; self.viewControllers=arr;   紧接着就是自定义tabbar了,实现自己想要的效果,然后接着我就把这个自定义的tabbarcontroller 在appdelegate里面 做成root了,但是当我想要push到别的页面的时候,问题来了 用原来的命令   self.navigationController.hidesBottomBarWhenPushed=YES;  根本就不管用,原因在于 我的tabbar是我自定义的,所以这个命令自然就不生效了,对此我也在网上查了好多办法,有的说push 的时候将tabbar移除屏幕外 回来的时候在放回来,等等,试验了一下也没试出来,后来 我就想,干脆在appdelegate里面不用自定义的tabbar当根了,用navigationcontroller 当根,然后把自定义tabbar类里面的viewcontroller 的导航都去掉,不就OK 了,这样当我想push 的时候,什么烦恼都没有了,直接push       MyTabBarController *myTabBar=[[MyTabBarController alloc] init];           UINavigationController *na=[[UINavigationController alloc] initWithRootViewController:myTabBar];           na.navigationBarHidden=YES;                 self.window.rootViewController=na;  MyTabBarController *myTabBar=[[MyTabBarController alloc] init]; UINavigationController *na=[[UINavigationController alloc] initWithRootViewController:myTabBar]; na.navigationBarHidden=YES; self.window.rootViewController=na;如上代码,就很巧妙的解决了 push以后tabbar 不消失的问题了,由于我要自定义导航栏 所以我把navigationBarHidden设置成yes了 ;
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部