这几天遇到个问题,当我登录APP后,去签到界面,点击上班打卡/下班打卡无响应,最后百度,以及自己的多次尝试,发现:
1、我在push到此界面是隐藏了TabBar,但是隐藏后TabBar这部分就没有了,不占有屏幕Frame;
2、紧接着,我建立的UIButton的frame正好是和TabBar重合的,即Button的frame不在屏幕上了,超出了屏幕,但仍然能够显示UIButton,在隐藏的TabBar的地方显示,这是点击UIButton就和无响应。
从1、2问题中我们分析发现,问题1是产生问题2的主要原因,我们只需要解决问题1就OK了。
解决办法:
如果在push跳转后,下一个界面需要隐藏TabBar,我们只需要在:
1、在push时,设置当前试图控制器隐藏TabBar,即设置:.hidesBottomBarWhenPushed = YES
代码示例:
LYMainViewController *lyMainVC = [[LYMainViewController alloc]init];
lyMainVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:lyMainVC animated:YES];
2、在push的界面中设置隐藏TabBar
self.tabBarController.tabBar.hidden = YES;
//并在push后设置self.hidesBottomBarWhenPushed=NO;
//这样back回来的时候,tabBar会恢复正常显示。
注意:隐藏tabBar之后,底部tabBar的高度49那块变黑了,
可以看下视图的层级结构,肯定是最外层的tabview或者View的高度不对