【问题标题】:Adding Navigation Item in UIViewController在 UIViewController 中添加导航项
【发布时间】:2015-05-02 01:55:42
【问题描述】:

我正在尝试将 UINavigationItem 添加到我的 UIViewController 中,如 this answer 所述。但是导航栏没有显示在我的视图中。我什至尝试添加一个插座并以编程方式设置标题,并在两个不同的位置添加 NavigationItem。仍然没有显示。此视图控制器嵌入在 TabBarController 中。我在这里错过了什么?

先谢谢了。

【问题讨论】:

    标签: objective-c uiviewcontroller uinavigationitem


    【解决方案1】:

    此视图控制器嵌入在 TabBarController 中

    但它是否首先嵌入在 UINavigationController 中?如果没有,将不会自动出现导航栏并自动使用您的视图控制器的导航项。

    如果您不想使用 UINavigationController(因为您没有导航可做),那么您可以手动添加导航栏。但在这种情况下,您的视图控制器的导航项将不会自动用于填充导航栏;您必须手动填充它。

    通常,人们使用 UINavigationController,即使没有导航可做,只是为了获得这种自动行为 - 显示导航栏并自动填充它。

    [注意:您告诉Interface Builder显示此视图控制器的导航栏,就好像它在导航控制器中的事实无关紧要;这不会导致您在应用运行时获得任何导航栏。]

    【讨论】:

    • 不,它没有嵌入在 UINavigationController 中。我会按照您的建议尝试并让您知道。谢谢马特!
    • 我尝试将 UIViewController 嵌入 UINavigationController 并按预期工作。谢谢!
    • 我很乐意提供帮助!你可能想在我的书中阅读导航控制器的解释:apeth.com/iOSBook/ch19.html#_navigation_controllers 基本上你已经遇到了我不喜欢故事板的事情:它们给你很大的力量,但它们并不能免除你的责任了解这些事情的真正运作方式以及您真正在做什么。
    • @matt 这也是我讨厌 iOS 的地方。我喜欢 Android 选择设计其 UI 框架的方式,它为您提供了微小的构建块来轻松完成您想做的所有事情。 iOS 试图为你做一切,虽然多年后它仍然做得不好,但它试图让你更新 Xcode 的每个版本,他们无耻地打电话那些更新改进。
    • @neevek 是的,你的评论让我想起了在引入故事板的那一年我在书中插入的咆哮。我在后来的版本中删除了咆哮,但我认为(并且仍然认为)这是一个坏主意,因为他们邀请初学者将它们用作拐杖(正如你所说的那样“为你做一切”)而不了解什么他们真的在幕后做事。 Stack Overflow 上每天都会被问到的各种问题证明了我对此是完全正确的。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2012-11-18
    • 1970-01-01
    相关资源
    最近更新 更多