【问题标题】:How to set the text of a back button on a UINavigationBar? [duplicate]如何在 UINavigationBar 上设置后退按钮的文本? [复制]
【发布时间】:2011-01-12 22:51:08
【问题描述】:

可能重复:
How do I change the title of the “back” button on a Navigation Bar

情况:
我有一个由导航控制器管理的 UIViewController。我可以通过简单地调用self.title = @"title" 来设置覆盖UIViewController 的导航栏的title。但是,我也希望能够设置导航栏的后退按钮文本(对于不同的语言,例如......)

问题:
我不知道如何设置后退按钮的文字。

问题:
如何设置 UINavigation 栏的后退按钮(编程方式不在 IB 中)?

【问题讨论】:

  • 好问题。可能没有记录在案的方法来做到这一点(老实说,我不知道),但如果将其更改为任何不是上一个项目的标题或“返回”一词不反对的内容,我会感到惊讶高。如果它违反了 HIG,那么这种定制很有可能会导致应用被拒绝。 /2cents.
  • 建议将您的“接受”设置为 Boon 的答案,这是正确的。马特的回答不是一个好的解决方案(对不起,马特!:)
  • 更改背面标签并不违反HIG,它必须有意义。

标签: iphone xcode uinavigationcontroller uinavigationbar


【解决方案1】:

setTitle 方式 - 虽然看起来可行,但不正确。如果您仔细观察,您会注意到导航项更改为新标题,而新视图通过 pushViewController 动画进入视图。您必须在 viewWillAppear 中恢复您的标题这一事实很笨拙,这进一步表明了它的黑客性质。

正确的做法是在你的pushViewController之前做如下操作:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle: @"返回按钮文本" 样式:UIBarButtonItemStyleBordered 目标:无行动:无]; [self.navigationItem setBackBarButtonItem: backButton]; [返回按钮释放];

【讨论】:

  • 不幸的是,在 prepareForSegue:sender: 回调中不起作用。我不确定故事板可接受的解决方案是什么。
  • 我让它在 prepareForSegue:sender: 回调中正常工作。只需摆脱 [backButton release];如果您使用的是 ARC。
  • 这里有一点值得强调:您在当前视图控制器上设置了后退按钮,您将在下一个视图控制器中看到它......以防它帮助任何人......它帮助了我。跨度>
  • @KieranSenior 无法在 iOS7 上运行
  • 在 iOS 8 上检查过,但没有用。改变之前的 viewcontroller 标题是唯一要做的事情
【解决方案2】:

根据苹果文档将视图控制器的标题设置为背面应该说的最好和最简单的方法是这样 -

示例:

如果viewController1viewController2 之下(并且viewController2 上的back button 将变为viewController1

viewController1.title = @"something awesome";

viewController2 上的back button 将显示“很棒的东西”

【讨论】:

  • 如果您在导航堆栈中向视图控制器添加标题,该标题将显示为后退按钮的标题。 “后退”是默认文本。您也不需要在设置此标题后删除它。因此这是正确的答案。
猜你喜欢
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
相关资源
最近更新 更多