我在我的应用程序中使用故事板,如果我设置了ViewController类的title属性,当我按下SecondViewController时,该字符串将显示为我的后退按钮的文本,我该如何更改?,我想要为后退按钮添加了不同的标题。
我已经使用了它,但它不起作用:
UIBarButtonItem *btnBack = [[UIBarButtonItem alloc]
initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:self
action:nil];
[self.navigationItem setBackBarButtonItem: btnBack];
请帮帮我
答案 0 :(得分:48)
试试这个,
目标-C:
UIBarButtonItem *btnBack = [[UIBarButtonItem alloc]
initWithTitle:@"Done"
style:UIBarButtonItemStyleBordered
target:self
action:nil];
self.navigationController.navigationBar.topItem.backBarButtonItem=btnBack;
夫特:
var btn = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: "backBtnClicked")
self.navigationController?.navigationBar.topItem?.backBarButtonItem=btn
答案 1 :(得分:12)
当您使用Storyboard时,您可以更改左侧栏按钮项目的文本,即后退按钮,无需代码。您显然需要在故事板中使用UINavigationController
,以便能够推送和弹出视图。
然后,当从该视图推送视图时,它将使用此标题集。
答案 2 :(得分:1)
将backBarButtonItem设置为上一个viewController的navigationItem。设置topItem仅适用于第一次viewWillAppear。请查看此帖子了解详情:iOS Set Navigation Bar Back Button Title
NSArray *viewControllerArray = [self.navigationController viewControllers];
// get index of the previous ViewContoller
long previousIndex = [viewControllerArray indexOfObject:self] - 1;
if (previousIndex >= 0) {
UIViewController *previous = [viewControllerArray objectAtIndex:previousIndex];
previous.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:backButtonTitle
style:UIBarButtonItemStylePlain
target:self
action:nil];
}
答案 3 :(得分:0)
尝试更改推送第二个视图控制器的第一个视图控制器的标题,并在弹出时将tittle设置为旧的。
答案 4 :(得分:-2)
试试这个:
UIBarButtonItem *btnBack = [[UIBarButtonItem alloc]
initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(backButtonClicked:)];
[self.navigationItem setLeftBarButtonItem: btnBack];
-(void)backButtonClicked:(UIBarButtonItem*)sender
{
//do ur stuff
}