override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
//Set Title for this view
self.navigationItem.title = "My Title"
}
override func viewWillDisappear(animated: Bool) {
super.viewWillAppear(animated)
//Set Title for back button in next view
self.navigationItem.title = "Back"
}
19 回答
尝试
我发现通过查看Apple的文档中的backBarButtonItem docs为UINavigationItem .
一旦我找出应用它的控制器,Marc W的方法就很有效:一个被重新命名,而不是顶部的控制器 . 所以如果这是导航堆栈:
...并且您希望在 ControllerB is on top 时显示的后退按钮中为ControllerA提供较短的 Headers ,您将属性更改应用于 ControllerA .
所以它更多地出现在
self.title
的上下文中,而不像其他左/右键按钮设置器 .你可以在故事板中完成 . 找到要返回的视图控制器(具有长 Headers 的视图控制器),选择它的导航项,然后打开属性检查器(Alt Cmd 4),插入自定义后退按钮 Headers .
谢谢Marco ...帮助了我......
这就是我做的 .
如果您使用tableView导航到不同的视图...放置代码:
在第一个控制器的
didSelectRowAtIndexPath
方法......控制器A.导航到控制器B时,按钮的 Headers 为“返回” .
The back button pulls its text from the title of the parent view controller.
在父视图控制器(点击后退按钮时显示的视图控制器)中,将其自己的 Headers 设置为后退按钮上的所需文本 .
例如,假设我们有一个
RootViewController
类 . 当我们在其表视图中单击一个单元格时,我们将推送SecondViewController
的实例 . 我们希望SecondViewController
实例的后退按钮读取,"Home."在RootViewController.m的
viewDidLoad
方法中:在SecondViewController.m的
viewDidLoad
方法中:如果要读取后退按钮,"Back,"将父视图控制器的 Headers 设置为
@"Back"
;这项工作对我来说更好 . 试试:
如果您使用的是故事板:
打开StoryBoard
在“文档大纲”窗口中,找到要返回的ViewController
单击该ViewController的导航项
在“属性”资源管理器中,将“后退”按钮值更改为自定义磁贴
就是这样,享受......
在MonoTouch中,以下工作(在父控制器的ViewDidLoad中):
这对我有用 .
在父视图控制器中,在视图加载时设置后退按钮:
请注意,最后我们不需要在最新的iOS版本中包含
autorelease
.希望这可以帮助!
[self.navigationController.navigationBar.backItem setTitle:@"back"];
这个对我有用 . 您可以用其他东西替换“后退” .
如果你不想拥有头衔,这个适合我!
我终于知道为什么这些答案一开始对我不起作用 . 我在故事板中设置了 Headers . 当我在代码上设置 Headers 时 . 有用!
我的解决方案是在视图控制器被推送到导航堆栈时设置 Headers ,并在推送vc关闭之前使用委托方法重置它:
因此,当我按下其他视图控制器时,我将 Headers 更改调用视图控制器:
并在委托回调函数(我在viewWillDissapear中调用):
如果您不仅要更改“后退”按钮的文本并保持原始的左箭头形状,还要在用户单击“后退”按钮时执行某些操作,我建议您查看我的“CustomNavigationController” .
//您可以通过在上一个视图控制器中设置 Headers 来实现此目的,如下所示
要更改后退按钮 Headers ,请参阅下面的代码
这对我有用: