从ios中的UITabBarController中删除标签栏的安全方法
Posted
技术标签:
【中文标题】从ios中的UITabBarController中删除标签栏的安全方法【英文标题】:Safe way to remove tab bar from UITabBarController in ios 【发布时间】:2014-04-14 19:45:50 【问题描述】:我想使用 UITabBarController 但我不需要标签栏,因为我要从另一个视图控制器的菜单中切换标签。我想删除它,因为它永远不会被使用。我创建了一个 UITabBarController 的子类并输入了以下代码:
- (void)viewDidLoad
[super viewDidLoad];
[self.tabBar removeFromSuperview];
这样删除标签栏安全吗?
更新:为什么选择标签栏控制器?
Apple 建议尽可能使用标准容器视图控制器。我正在努力遵循这一点。我的屏幕工作流程与标签相同,只是它们是通过左侧菜单而不是标签栏切换的。
当我使用 UIViewController 并更改它的子视图控制器时,当自动布局无法正常工作时,我遇到了很多问题。
另一个原因是我想使用故事板,而不是从代码中创建转场,以便我可以轻松查看我的应用工作流程。
【问题讨论】:
也许你不应该使用标签栏控制器? 当你想切换视图时,你可以只使用 UIViewController 并更改它的子视图控制器。 感谢您的 cmets!我更新了我的问题,解释了为什么我要使用标签栏控制器 这行得通吗? ***.com/a/7524054/210171 tabBar.hidden = YES 运行良好。它永远隐藏栏,并且约束在横向和纵向模式下都有效。 【参考方案1】:当您说不想使用它时,为什么要删除它。你可以带一个
tabbarcontroller
隐藏tabbar
。我正在从底部自定义栏切换标签。
我正在做一个应用程序,它有一个包含三个项目的 tababr 控制器。我没有使用系统选项卡,而是在页脚处创建了一个自定义视图,例如选项卡,并且实际上将 tabbarController 的选项卡栏的 hidden
属性设置为 YES。
myTabBarController.tabBar.hidden = YES;
【讨论】:
【参考方案2】:试试这个代码
[app.navigationController.view removeFromSuperview];
[app.tabbarcontroller.view removeFromSuperview];
[app.window addSubview:app.navigationController.view];
[app.navigationController popToRootViewControllerAnimated:YES];
【讨论】:
以上是关于从ios中的UITabBarController中删除标签栏的安全方法的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 中的 UITabBarController 适用于 iOS 8 但不适用于 7
ios 6 中的 UITabBarController 旋转问题
iOS:在没有 UITabBarController 的情况下从用户界面实现 UITabBar