如何使用当前视图信息自定义 UINavigationController 的顶部栏?

Posted

技术标签:

【中文标题】如何使用当前视图信息自定义 UINavigationController 的顶部栏?【英文标题】:How to customize the top bar of a UINavigationController with the current view information? 【发布时间】:2011-04-27 11:16:53 【问题描述】:

我有一个 UINavigationController,在图片中你可以看到添加了一个 UIViewController。

现在,我想用当前可见 UIViewController 的内容自定义 UINavigationController 的顶部栏。更具体地说,我想:

    添加标题 自定义“返回”按钮文本

我应该使用当前 UINavigationController 中的 self.navigationController 方法吗?如果是这样,接下来的步骤是什么?

谢谢

【问题讨论】:

【参考方案1】:

您可以设置标题:

[[self navigationItem] setTitle:@"title text"];

您可以在 InterfaceBuilder 中更改后退按钮文本或:

[[[self navigationItem] backBarButtonItem] setTitle:@"back button text"];

但请记住,backBarButtonItem 来自前一个 ViewController,因此您必须在此处设置它。或者,标题是从前一个视图中设置的。

【讨论】:

我发现它在 viewWillAppear 中不起作用,而仅在 viewDidLoad 中起作用。既然我的视图出现了,为什么我不能在那里设置呢?谢谢 其实你说的按钮是不正确的。我需要替换按钮而不是文本才能使其工作。即discussions.apple.com/thread/2508892?threadID=2508892 您确定调用了 viewWillAppear 吗?我只用 viewDidLoad 进行了测试。但有时 viewWillAppear (***.com/questions/131062/…) 会出现问题。我在一个示例项目上测试了我的代码,它运行良好。所以我确定我的代码是正确的。【参考方案2】:
self.title = "Your title";

您可以在当前视图控制器中使用它来显示标题

【讨论】:

以上是关于如何使用当前视图信息自定义 UINavigationController 的顶部栏?的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义视图的路径设计使用

SharePoint 树视图自定义

如何在 Drupal 7 视图中使用当前用户作为相关字段?

android:如何使用属性集构造函数实例化我的自定义视图

如何获取当前活动的 UIEvent?

如何判断 UITabBar 是不是从自定义视图打开?