自定义tabbar中怎么在push之后push时隐藏tabbar

在学习仿彩票界面时遇到了一个问题:
前一个控制器在跳转到另一个控制器界面时隐藏tabBar (hidden on push),另一个控制器的布局在显示之后下方闪现一个与tabBar大小相同的白条,随后布局调整到和整个屏幕一样大,整个布局都收到了影响
经过一番摸索之后发现这与自动布局的参考物选取有关
如果控件的底部设置的参考对象是Bottom Layout Guide,那么就会出现上面的情况
如果控件的底部设置的参考对象是控制器的View则不会有这种情况演示如下:
使用Bottom Layout Guide作为参考
使用控制器View作为参考
以上纯属自己瞎摸索出来的,还没有找到官方的解释
热点阅读:
小主,按键盘右方向键 → 翻页可以跳过片头呢
本文标题:
原文链接:
和本文相似的内容:
日,佛山市发生了一起特殊凶杀案:犯罪嫌疑人李善周雇凶两名,将受害者张东成控制后,李善周亲自手持一柄尖刀,对着张东成的下体猛刺,活生生地将张东成的阴茎和14:15:25 UTC
主界面用了TabBarIOS,在某些内页不想显示TabBarIOS,要如何做?
03:30:29 UTC
12:36:50 UTC
好像没有直接的api去隐藏,我们的app也有这个需求,比如二级sence不需要显示TabBar,我们处理的方式,比如Home主页,用NavigatorIOS的initialRouter去加载一个home,在home中使用TabBar,一旦跳转二级sence直接用this.props.navigator.push一个新的view,这样就不会显示tabbar了。
04:13:57 UTC
是的,我们也是这么处理的!可以用一个包裹住然后调用navigator.push到下一页面就行了,下个页面时新的&./View&题主可能是用了来控制视图的切换,我猜测是文档的例子!
21:12:13 UTC
找到RCTNavigator.m,在
(void)navigationController:(UINavigationController )navigationController willShowViewController:(__unused UIViewController *)viewController animated:(__unused BOOL)animated
方法一开始的地方插入语句:
RCTWrapperViewController * thisController = (RCTWrapperViewController *)viewC
if (navigationController.viewControllers.count & 1) {
thisController.tabBarController.tabBar.hidden = YES;
thisController.tabBarController.tabBar.hidden = NO;
10:51:30 UTC
我的理解是一个NavigatorIOS 包含TabBarIOS 所有页面共用一个NavigatorIOS,但是这种方案有个问题是 tabbar 对应的 view 的NavigatorI titile 共用的也是一个
方案是可以的,但是会有一个 bug 就是滑动返回时放弃返回 tabbar 会显示出来
另外一直解决方案是:文件:
RCTWrapperViewController.m方法: - (void)viewWillAppear:(BOOL)animated插入下面一句
self.navigationController.tabBarController.tabBar.hidden=self.navigationController.childViewControllers.count&1?YES:NO;
03:22:27 UTC
nice!!!感谢
08:26:54 UTC
你可以在进入主页之前
用Navigator组件把你的组件包起来!
接下来主页进入之后哪些页面不想看见TabBarIOS, 你可以直接用navigator.push()
来打开你想要显示组件, 这样TabBarIOS是没有的!
10:09:31 UTC
的方法,没有效果... 这个东西TabBarIOS隐藏不了,求navigator.push() 实现的逻辑,或者是代码..
05:16:41 UTC
请问能贴断代码吗?
04:03:07 UTC
两种方法都实现不了的,第一种和第二种都会有侧滑就出现tabbar的情况ios中解决自定义tabbar跳转隐藏问题的方法
时间: 01:40:10
&&&& 阅读:429
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&在ios开发(/course/ios/)中,如何自定义tabbar高度的跳转隐藏问题,比如和系统自带的tabbar高度不一样导致的有一条线的问题,还有push时动画效果等等一些列问题不在这里累述了,当然,思路有很多,可以参考以上链接自己琢磨琢磨,好了,下面直接上个人认为完美解决办法。需求1、自定义tabbar,不用系统的tabbar2、第二点需求是自定义tabbar的高度和系统的不一样,系统的tabbar高度为49,就是因为这点导致第三个需求有多重解决方法。3、跳转隐藏tabbar,这个需求很简单,但是在第二个需求的前提下第三个需求并不是这么容易实现了。&完美解决办法(只写关键代码)自定义tabbar//&创建一个自定义的tabbar,并且设置frame(frame写死了,读者可以根据自己的需求改,笔者用的自定义高为44)ERTabBar&*tabBar&=&[[ERTabBar&alloc]&initWithFrame:CGRectMake(0,&0,&320,&44)];设置系统tabbar的高度(其他博客或者论坛也有这样解决的)CGRect&frame&=&[UIScreen&mainScreen].self.tabBar.frame&=&CGRectMake(0,&CGRectGetHeight(frame)-44,&CGRectGetWidth(frame),&44);UIView&*transitionView&=&[[self.view&subviews]&objectAtIndex:0];frame.size.height&=&CGRectGetHeight(frame)&-&44;transitionView.frame&=&把自定的tabbar添加到系统自带的tabbar上面[self.tabBar&addSubview:tabBar];在viewWillAppear方法中删除系统自带的tabBarButton-&(void)viewWillAppear:(BOOL)animated{[super&viewWillAppear:animated];&&&&//&删除系统自带的tabBarButton&&&&for&(UIView&*tabBarButton&in&self.tabBar.subviews)&{&&&&&&&&if&([tabBarButton&isKindOfClass:NSClassFromString(@"UITabBarButton")])&{&&&&&&&&&&&&[tabBarButton&removeFromSuperview];&&&&&&&&}&&&&}}跳转隐藏-&(void)pushViewController:(UIViewController&*)viewController&animated:(BOOL)animated{if&(self.childViewControllers.count)&{&//&不是根控制器&&&&&&&&viewController.hidesBottomBarWhenPushed&=&YES;&[super&pushViewController:viewController&animated:animated];&}标签:&&&&&&&&&&&&&&&原文:http://1064
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 push时隐藏tabbar 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信