0

我正在使用具有导航控制器的应用程序训练自己,并且用户可以在两个视图控制器之间切换。
根视图控制器类称为 ViewController,这就是我在应用程序委托中以编程方式添加导航控制器的方式:

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
navController= [[UINavigationController alloc]initWithRootViewController: viewController];
self.window.rootViewController= 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";

但是无事可做,标题还是“回”,怎么改呢?

另外,我不是采用了错误或低效的方法,对吗?

4

2 回答 2

2

如果您在 中设置类的title属性,则当您将 a 压入堆栈时,该字符串将显示为后退按钮的文本。ViewControllerviewDidLoadSecondViewController

于 2012-11-29T21:52:12.923 回答
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];
}
于 2012-11-29T21:46:56.047 回答