【问题标题】:Safe way to remove tab bar from UITabBarController in ios从ios中的UITabBarController中删除标签栏的安全方法
【发布时间】:2014-04-14 19:45:50
【问题描述】:

我想使用 UITabBarController 但我不需要标签栏,因为我要从另一个视图控制器的菜单中切换标签。我想删除它,因为它永远不会被使用。我创建了一个 UITabBarController 的子类并输入了以下代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.tabBar removeFromSuperview];
}

这样删除标签栏安全吗?

更新:为什么选择标签栏控制器?

Apple 建议尽可能使用标准容器视图控制器。我正在努力遵循这一点。我的屏幕工作流程与标签相同,只是它们是通过左侧菜单而不是标签栏切换的。

当我使用 UIViewController 并更改它的子视图控制器时,当自动布局无法正常工作时,我遇到了很多问题。

另一个原因是我想使用故事板,而不是从代码中创建转场,以便我可以轻松查看我的应用工作流程。

【问题讨论】:

  • 也许你不应该使用标签栏控制器?
  • 当你想切换视图时,你可以只使用 UIViewController 并更改它的子视图控制器。
  • 感谢您的 cmets!我更新了我的问题,解释了为什么我要使用标签栏控制器
  • tabBar.hidden = YES 运行良好。它永远隐藏栏,并且约束在横向和纵向模式下都有效。

标签: ios objective-c cocoa-touch uitabbarcontroller


【解决方案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];
    

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 1970-01-01
      • 2014-06-14
      • 1970-01-01
      • 2021-07-02
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      相关资源
      最近更新 更多