我正在编写一个应用程序(iOS8),它最终需要通过来自UITableView的segue加载UITabBarController。在大多数情况下,这个设置可以通过Storyboard完成并按预期工作,但是我还想将UIButtonBarItem添加到目标视图中,这是问题开始的地方。
可以按如下方式配置有效的设置(没有UITabBarController)
如果我在模拟器中运行它,一切都按预期工作,我看到后退按钮和所需的“添加”UIBarButtonItem:
如果我然后将最终视图控制器嵌入到UITabBarController中,我添加的UIBarButtonItem消失了,到目前为止我对故事板设置所做的任何更改(例如在UITabBarContoller和最后一个视图之间添加UINavigationController)或尝试以编程方式添加UIBarButtonItem并没有什么区别:
是否有最终设置使用UITabBarController和UIBarButtonItems?
答案 0 :(得分:0)
我在其中一个应用中使用了相同的设置,但效果很好。不确定为什么会出现问题,但我确实在我的自定义选项卡控制器中添加了几行代码,可能会对您有所帮助。我认为问题是原始导航控制器中的导航栏仍然显示,因此子类UITabBarController并将这些行放在viewWillAppear中:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationItem setHidesBackButton:YES];
[self.navigationController setNavigationBarHidden:YES];
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
在我的应用程序中,标签栏控制器之前的视图是登录/注册视图,因此在进入选项卡控制器" stack,"之后没有理由导航回它们。但我确定添加一个完成此操作的后退按钮会很困难。我相信你只需要[self.navigationController setNavigationBarHidden:YES];
行,它只隐藏导航栏而不是隐藏后退按钮或禁止弹出手势。
答案 1 :(得分:0)
我知道这已经晚了但我只想添加swift 3代码。 原因是tabBarController的NavigationBarA隐藏了位于tabBarController和最终ViewController之间的NavigationBarB。所以你只需要设置隐藏NavigationBarA
在最终ViewController的viewWillAppear中,您可以添加以下内容(无需子类tabBarController)
self.tabBarController?.navigationController?.setNavigationBarHidden(true, animated: false)