推送视图控制器后如何保留 UITabBar
Posted
技术标签:
【中文标题】推送视图控制器后如何保留 UITabBar【英文标题】:How do I keep the UITabBar after pushing view controllers 【发布时间】:2018-06-18 21:18:38 【问题描述】:所以,我的故事板上有以下结构。 TabBar item 2 就像一个“更多”选项卡,我想在推送新的视图控制器后保留底部的 TabBar(在本例中,推送紫色 VC)。
我在这里看到一些问题说我应该将 item 2 嵌入到导航控制器中。好的,如果我按下紫色 VC,底部栏会继续出现。我现在遇到的问题是橙色导航栏没有消失,蓝色导航栏没有出现。橙色的导航栏应该会出现,直到绿色的vc,按下紫色的vc后,导航栏应该会改变。我想要这个,因为如果我在紫色 VC 中,我想返回绿色 VC,但如果出现橙色导航栏,则返回按钮会返回灰色 vc。
gif 正在演示当前行为。 有人可以帮忙吗?
【问题讨论】:
【参考方案1】:删除项目2所属的Navigation Controller
。
现在您可以使用更改导航栏颜色
self.navigationController?.navigationBar.barTintColor = UIColor.red //choose the color of your liking
在ViewController
的viewDidLoad
内。
【讨论】:
我需要转到标签栏控制器,因为它是一个选择屏幕,可以转到“主视图”,即标签栏。 不,我不想更改条形颜色。我想要的是,当我从绿色 VC 推紫色 VC 时,会出现后退按钮,它应该显示回绿色 VC。在当前行为中,当我在紫色 VC 中时,后退按钮会返回到灰色 VC 是的,移除导航控制器是可行的,但是当紫色控制器被按下时,底部的标签栏消失了。 我设法在紫色 vc 上添加代码:on view did load: self.tabbarController.navigationcontroller.isNavigationBarHidden = true 并且在另一个 vc 中我将其设置为 false【参考方案2】:你必须写这样的代码--
1-目标c-
productDetail *obj=[[productDetail alloc] initWithNibName:@"productDetail" bundle:nil];
obj.hidesBottomBarWhenPushed = NO;
[self.navigationController pushViewController:obj animated:NO];
2-斯威夫特-
var obj = productDetail(nibName: "productDetail", bundle: nil)
obj.hidesBottomBarWhenPushed = false
navigationController?.pushViewController(obj, animated: false)
【讨论】:
没用。属性检查器上也有这个选项。以上是关于推送视图控制器后如何保留 UITabBar的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 中向 UIView 添加第二个 UITabBar(控制器?)