如何更改在界面生成器中创建的 UINavigationBar 的标题

Posted

技术标签:

【中文标题】如何更改在界面生成器中创建的 UINavigationBar 的标题【英文标题】:How can I change the title of UINavigationBar Created in Interface builder 【发布时间】:2010-07-01 23:19:20 【问题描述】:

问题是我在界面生成器中创建了一个 UINavigationBar,我想更改标题。导航栏未连接到我的 UINavigation 控制器。有什么方法可以让导航栏独立于我的 Nib 来实现这一点?

我的问题的第二部分是对 UINavigationBars 如何工作的一般理解。我不明白导航项堆栈是如何工作的。例如,如果我想将右侧按钮项更改为“完成”而不是“编辑”怎么办?我的理解是左,中,右栏按钮项目在堆栈上?但是我怎么知道哪个项目在堆栈中的哪个位置。如果我在这里遗漏了一些基本的东西,我很抱歉,但我需要澄清一下左、中和右栏按钮项目是如何管理的,以及堆栈是如何工作的。提前致谢。

【问题讨论】:

【参考方案1】:

您可以在导航栏中使用自定义titleView,在其中添加了带有您选择的文本的UILabel

阅读 Apple 的 View Controller Programming Guide for iPhone OS 文档的“配置导航项对象”部分,了解有关如何自定义导航栏的更多信息。

【讨论】:

他在询问如何在 Interface Builder 中执行此操作。似乎没有办法——我对如何在 IB 中做到这一点也很感兴趣。【参考方案2】:

为您在界面生成器中创建的 UINavigationBar 创建一个 IBOutlet

@property (weak, nonatomic) IBOutlet UINavigationBar *navigationBar;

然后更改标题

self.navigationBar.topItem.title = @"My Custom Title";

【讨论】:

【参考方案3】:

UINavigationController 是 UIViewController 的子类,但与 UIViewController 不同的是,它通常并不意味着您要继承子类。这是因为导航控制器本身很少在导航栏的视觉效果之外进行自定义。

UINavigationController 的实例可以相对容易地在代码或 XIB 文件中创建。它被认为是一个堆栈:它有一个根视图控制器,然后可以将新的视图控制器推入堆栈(通常当用户点击表格中的一行时)或弹出堆栈(通常通过按下后退按钮)。

根视图控制器可以通过拖动导航控制器下的视图控制器在 XIB 中设置,或者在创建时使用 initWithRootViewController 在代码中设置。

导航堆栈

四种方法用于在堆栈中导航用户:

--pushViewController:animated: – popViewControllerAnimated: – popToRootViewControllerAnimated: – popToViewController:动画:

【讨论】:

以上是关于如何更改在界面生成器中创建的 UINavigationBar 的标题的主要内容,如果未能解决你的问题,请参考以下文章

ios UIview 在视图中

如何更改在 Google App Inventor 中创建的 android 应用程序的图标?

在 Interface Builder 中显示在代码中创建的 UIButton

无法将 UITableViewController 连接到在 xib 中创建的 UITableView

界面生成器:如何加载 nib 文件

使用在切换菜单中创建的选项更改整个代码中的十进制格式