UINavigationController完成推送后是否可以更改后退按钮的标题?
例如,假设我在推送的VC上有一个文本字段。是否可以使用后退按钮文本镜像字段文本?
我知道这很糟糕,但客户需要它。
答案 0 :(得分:2)
后退按钮的标题来自前一个视图控制器的标题。因此,如果要将文本字段镜像为后退按钮标题,则应在准备segue方法中将视图控制器的标题传递给推送的视图控制器:
/*
* Called in ViewControllerA
*/
if ([segue.identifier isEqualToString:@"ViewControllerB"]) {
ViewControllerB *VCB = segue.destinationViewController;
VCB.previousViewControllerTitleString = self.navigationItem.title;
}
然后您可以使用ViewControllerB中的previousViewControllerTitleString属性来设置文本字段的文本。
答案 1 :(得分:1)
1假设2个viewController,A推送到B:
当您在A中按B时,您可以将A的标题设置为您想要的。然后B中的后面标题将被更改。
请注意在弹出B时更改A的标题(如果需要)。
2您也可以自己定制后退按钮。
答案 2 :(得分:0)
使用此:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBar.backItem.title = self.textField.text;
}
但是,您可能需要在设置标题之前将backItem设置为UIBarButtonItem实例,因为它可能为零。