【问题标题】:Pushing UIViewController above UITabBar将 UIViewController 推到 UITabBar 上方
【发布时间】:2018-06-15 06:23:59
【问题描述】:

我有一个名为ListVCUIViewControllerListVC 有一个UITabBar,用户可以使用它来切换标签。它还有UINavigationController

ListVC 中,我有一个按钮,我想在按下时推送一个名为DetailVC 的新ViewController(使用NavigationController)。我想在没有UITabBar 的情况下展示DeatilVC

问题是当我使用pushViewController(animated) 方法时,视图仍然有UITabBar

如何将视图(我不想以模态方式呈现)推到 UITabBar 上方?

从聊天列表中选择聊天时,您可以在 Whatsapp 上看到它的示例。图片:

代码:

self.navigationController?.pushViewController(detailVC, animated: true)

谢谢!

【问题讨论】:

  • @SPatel 类型“UITabBarController”的值没有成员“pushViewController”
  • self.navigationController?.pushViewController(detailVC, animated: true) 无法解决您的问题。这不是真的。也许你做了其他事情?
  • @pacification 你什么意思?默认pushViewController推送视图并保留tabBar
  • 将 tabBarcontroller 嵌入到 navigationController
  • @SPatel 你是什么意思?你能再解释一下吗(我没有使用故事板)

标签: ios iphone swift cocoa-touch uitabbar


【解决方案1】:

推送时写下代码:

yourViewController.hidesBottomBarWhenPushed = true

您也可以从情节提要中隐藏标签栏。选择您要推送的视图控制器并选中 Hide Bottom Bar on Push:

【讨论】:

  • 它不会在标签栏上方显示视图。它只是隐藏它(并且没有任何动画)。
  • 你是在展示视图控制器还是推送?
  • 推送。您可以在 Whatsapp 中看到我想要实现的目标
  • 我添加了我想要实现的目标的图像。请看一下
  • 你在推送yourViewController.hidesBottomBarWhenPushed = true 的时候在这个代码下面添加了吗?
【解决方案2】:

好的,我已经解决了这个问题。我必须在推送代码之前和之后添加两次hidesBottomBarWhenPushed

self.hidesBottomBarWhenPushed  = true
self.navigationController?.pushViewController(detailVC, animated: true)
self.hidesBottomBarWhenPushed = false

【讨论】:

【解决方案3】:

转到情节提要并检查Hide Bottom Bar On Push

或者直接输入DeatilVC viewDidLoad方法hidesBottomBarWhenPushed = true

【讨论】:

  • 它不会在标签栏上方显示视图。它只是隐藏它(并且没有任何动画)。
  • 我添加了我想要实现的目标的图像。请看一下
  • @FS.O6,仍然没有得到问题。也许你有视频或 gif 示例?
  • 我不想隐藏标签栏。我想在它上面推一个VC
【解决方案4】:

试试这个

override func viewWillDisappear(_ animated: Bool) {
    self.tabBarController?.tabBar.isHidden = true
}

override func viewWillAppear(_ animated: Bool) {
    self.tabBarController?.tabBar.isHidden = false
}

【讨论】:

  • 我添加了我想要实现的目标的图像。请看一下
  • 我添加了一张图片。这正是我想要实现的。不隐藏标签栏,在其上方推VC
  • 你是推送到导航控制器还是视图控制器???如果您正在推送带有导航控制器的视图控制器,请尝试删除该导航控制器并推送到视图控制器
  • 什么意思?我是这样推的:self.navigationController?.pushViewController(detailVC, animated: true)
  • 所以你是说你的标签栏被隐藏了??而且你不希望那个标签栏被隐藏??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
  • 2011-05-10
  • 1970-01-01
相关资源
最近更新 更多