iOS后退按钮标题不会更改

时间:2015-04-10 06:50:53

标签: ios objective-c uiviewcontroller uinavigationcontroller back-button

UINavigationController

中的“后退”按钮出现问题

我有一个根视图控制器,其方法实现如下:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"NEW BACK" style:UIBarButtonItemStylePlain target:nil action:nil];
}

尽管有这段代码,我的后退按钮标题仍然是我的根视图控制器的标题而不是“NEW BACK”

有谁看到问题出在哪里?

3 个答案:

答案 0 :(得分:0)

隐藏默认后退按钮,然后以编程方式添加按钮。在viewDidLoad中添加代码。

self.navigationItem.hidesBackButton = YES;

UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

        [backButton setBackgroundImage:[UIImage imageNamed:@"arrowleft.png"] forState:UIControlStateNormal];
        [backButton addTarget:self action:@selector(btnBackTapped:) forControlEvents:UIControlEventTouchUpInside];
        backButton.frame = CGRectMake(0.0f, 0.0f, 25.0f, 20.0f);
        UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

        self.navigationItem.leftBarButtonItem = backButtonItem;

添加

  

btnBackTapped

同一类中任何地方的方法

-(void)btnBackTapped:(id)sender 
{
   [self.navigationController popViewControllerAnimated:YES];
}

答案 1 :(得分:0)

而不是这样做

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"NEW BACK" style:UIBarButtonItemStylePlain target:nil action:nil];

在你的RootViewController中,在子视图控制器中执行此操作意味着您正在推动的控制器。

答案 2 :(得分:0)

如果你设置导航控制器的后退按钮,那么它将应用于所有进一步的viewController,尽管viewController有自己的后退按钮配置。尝试重置navigationController中的后退按钮。希望你的代码能够运作。