从 UITableViewController 推送到 UIViewController 时,底部标签栏消失并保持黑色
Posted
技术标签:
【中文标题】从 UITableViewController 推送到 UIViewController 时,底部标签栏消失并保持黑色【英文标题】:bottom tabbar disappears and leave black when pushed from UITableViewController to UIViewController 【发布时间】:2019-03-22 07:56:46 【问题描述】:在我的用例中,我想在离开 UITabbarController 时隐藏底部标签栏。
我正在使用
let vc = storyboard?.instantiateViewController(withIdentifier: tableData[indexPath.row]["vcIdentifier"]!)
self.hidesBottomBarWhenPushed = true
self.show(vc!, sender: self)
它有点工作,因为推送的视图控制器底部没有标签栏。但是,只要我点击导航,“发送者”视图控制器的底部标签栏就会消失并留下黑色区域。
如果您需要有关任何事情的更多信息,请告诉我。提前非常感谢!
【问题讨论】:
【参考方案1】:如果推送的视图控制器底部没有标签栏,可以添加视图控制器代码的这个生命周期。
override func viewWillAppear(_ animated: Bool)
super.viewWillAppear(animated)
tabBarController?.tabBar.isHidden = true
override func viewWillDisappear(_ animated: Bool)
super.viewWillDisappear(animated)
tabBarController?.tabBar.isHidden = false
【讨论】:
您好,Ozdil 感谢您的回答。我发现在目标视图控制器上使用 .hidesBottomBarWhenPushed 也可以解决问题。【参考方案2】:如果您想在进入下一个屏幕时隐藏标签栏,您可以使用 segue。它会自动隐藏它。
【讨论】:
后来我意识到这种行为是由一行不应该存在的代码引起的。我无意中设置了目标视图控制器的 tabbar.isHidden。以上是关于从 UITableViewController 推送到 UIViewController 时,底部标签栏消失并保持黑色的主要内容,如果未能解决你的问题,请参考以下文章
推送到 navigationController 时 UITableViewController 静态单元格不出现
将 UITableViewController 推送到导航堆栈时看不到导航栏
将 UITableViewController 推送到 [self navigationController] 会导致 EXC_BAD_ACCESS