隐藏 TabBar 后无法触摸 TabBar 后面的区域
Posted
技术标签:
【中文标题】隐藏 TabBar 后无法触摸 TabBar 后面的区域【英文标题】:After hiding TabBar can't touch on the area behind the TabBar 【发布时间】:2014-08-27 23:17:07 【问题描述】:我在我的应用程序上使用 TabBarController,在其中一个主视图 (aViewController) 中,我推送另一个控制器 (bViewController),然后使用 self.tabBarController.tabBar.hidden=YES; 隐藏 TabBar;
bViewController 在 tabBar 所在的位置有一个按钮,它没有捕捉到触摸事件。
我试过把按钮放在bViewController的不同位置,tabBar应该在的区域是唯一没有检测到触摸事件的地方。
我尝试在 tabBarController 之外使用 bViewController,它工作正常。 任何帮助将不胜感激。
编辑:
当我按下 aViewController 上的按钮时,我会调用
self.tabBarController.tabBar.hidden=YES;
[self performSegueWithIdentifier:@"aViewToBView" sender:self];
aViewToBview 是在故事板上声明的 push segue
【问题讨论】:
你是模态呈现bViewController还是推送它? 你能发布你的代码吗? 我也遇到了同样的问题,你解决了吗? 无法解决,我只是将按钮放在tabBar区域上方,看起来很难看,但不得不忍受。 【参考方案1】:由于某种原因,您无法触摸标签栏下方的视图。
但是,如果你隐藏标签栏,然后添加一个子视图,那么该视图可以接收用户交互!
这对我有用:
// Create a button that is at the very bottom of the screen
CGFloat buttonHeight = 45.0f;
UIButton *finishButton = [[UIButton alloc] initWithFrame:CGRectMake(
0,
self.view.frame.size.height - self.tabBarController.tabBar.frame.size.height - buttonHeight,
self.view.frame.size.width,
buttonHeight)];
//...more initialization of the button...
//Here is our solution:
[self.tabBarController.view addSubview:finishButton];
【讨论】:
对我来说这不是最好的解决方案,但它确实有效,谢谢。 @gomezluisj 为什么它不是最好的解决方案?你能详细说明一下吗? 以编程方式创建按钮意味着我不能使用故事板的约束,所以我也需要以编程方式设置它们,这很痛苦。 我明白了。您仍然应该能够通过情节提要创建它。但是在运行时,您只需包含将子视图添加到 tabbarcontroller.view 的最后一行 此解决方案对于视图不仅仅位于标签栏框架内的情况没有任何帮助。例如,我正在使用 UITableView 子类,当标签栏被隐藏时,它会延伸到屏幕的末尾;底部是不可触及的。以上是关于隐藏 TabBar 后无法触摸 TabBar 后面的区域的主要内容,如果未能解决你的问题,请参考以下文章