【问题标题】:UINavigationBar inside of each view每个视图内的 UINavigationBar
【发布时间】:2014-06-12 11:41:19
【问题描述】:

在我的 iOS 应用程序中,我有一个 UITabBarController。在将位于 TabBar 内的每个视图的顶部,我想要一个带有标题的 NavigationBar。我不想用这个 NavigationBar 在视图之间导航,我只想用它来显示视图的标题。

在我看来,将 NavigationBar 放入每个视图并不是一个好主意。此 NavigationBar 应位于根视图 - TabBarController 的视图中。但是如果我把它放到根视图中,子视图会与不可见的 NavigationBar 重叠根视图。

你能告诉我应该如何解决这个问题吗?谢谢。

【问题讨论】:

    标签: ios objective-c uitabbarcontroller uinavigationbar


    【解决方案1】:

    将您的 ViewController 嵌入到 UINavigationController 中。通过这样做,您将在视图控制器中获得一个导航栏,您可以在那里设置标题。对于嵌入,请按照以下步骤操作。

    1. 在您的storyboard 中,单击视图控制器,使其上出现蓝色边框。
    2. 之后,转到菜单栏中的编辑器菜单,然后单击嵌入。
    3. 点击导航控制器。

    在这里,如果当前您的 View 控制器嵌入在 UITabBarController 中,那么也可以。只需按照这些步骤操作,您就会在底部拥有一个导航栏和标签栏菜单。

    希望这会有所帮助。

    【讨论】:

    • 我不想使用 NavigationController 因为我只想显示视图标题。我不会使用导航。
    【解决方案2】:

    在我看来,将 NavigationBar 放入每个视图并不是一个好主意。

    我不同意。您可以在多个视图中添加导航栏,特别是如果您希望在每个视图中使用不同的导航栏按钮。


    如果这是一种不好的编码习惯,Apple 不会在 Xcode 中包含没有控制器的栏。例如,它们不包含汉堡导航控制器,因为它的设计理念很糟糕。

    【讨论】:

    • 我猜你是对的。只有一个 NavigationBar 并且只更改其标题似乎是一个更好的解决方案。但我会将 NavigationBar 放入每个视图中...
    • -1:你可以做无穷无尽的没有意义的事情——这并不意味着 Apple 支持他们中的每一个,也不意味着他们说不要使用汉堡导航。在没有导航控制器的情况下使用导航栏可能,但是如果您使用导航控制器,您会自动为您管理许多事情,例如每个视图控制器上的 navigationItem 自动将导航栏连接到正确的配置。因此,有时不使用导航控制器可能是正确的选择,但如果您需要更多东西,则必须返回并重新进行操作。
    【解决方案3】:

    隐藏导航栏:

    [[self navigationController] setNavigationBarHidden:YES animated:YES];
    

    展示它:

    [[self navigationController] setNavigationBarHidden:NO animated:YES];
    

    【讨论】:

      猜你喜欢
      • 2014-03-08
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 2011-11-02
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多