我正在使用具有导航控制器的应用程序进行自我训练,用户可以在两个视图控制器之间切换 根视图控制器类称为ViewController,这就是我在我的应用程序委托中以编程方式添加导航控制器的方式:
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
navController= [[UINavigationController alloc]initWithRootViewController: viewController];
self.window.rootViewController= navController;
这是navController:
@property (strong, nonatomic) UINavigationController* navController;
第二个视图控制器被称为SecondViewController。我会在用户点击栏按钮项时按下它:
self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithTitle: @"Second View" style: UIBarButtonItemStylePlain target: self action: @selector(switchView:)];
这是执行的选择器:
- (void) switchView : (id) sender
{
if(!nextController)
{
nextController= [[SecondViewController alloc]initWithNibName: @"SecondViewController" bundle: nil];
}
[self.navigationController pushViewController: nextController animated: YES];
}
然后在第二个视图控制器中自动出现一个标题为“后退”的按钮,切换到第一个视图。这对我来说很好,但我想设置标题和样式。所以我试图改变标题:
self.navigationItem.backBarButtonItem.title= @"First View";
但无所事事,标题仍然“回归”,我该如何改变呢?
另外,我不是采用错误或无效的方法,对吗?
答案 0 :(得分:2)
如果您在title
中设置了ViewController
课程的viewDidLoad
属性,那么当您将SecondViewController
推送到{{1}}时,该字符串将显示为后退按钮的文字叠加。
答案 1 :(得分:1)
尝试此更改按钮标题。初始化并添加您自己的leftBarButtonItem并隐藏退回按钮。
UIBarButtonItem* backBtn = [[UIBarButtonItem alloc] initWithTitle:@"BUTTON_NAME" style:UIBarButtonItemStyleDone target:self action:@selector(backAction)];
self.navigationItem.leftBarButtonItem = backBtn;
self.navigationItem.hidesBackButton = YES;
如果可以的话,你会想要隐藏原始的后退按钮,只需要创建一个backAction,它可以是使用popViewcontrollerAnimated函数的东西(如果你开始推动viewcontroller)。
- (void) backAction {
[self.navigationController popViewControllerAnimated:YES];
}