如何更改UINavigationController上的后退按钮

时间:2010-11-03 22:40:11

标签: iphone objective-c ios uinavigationcontroller uibarbuttonitem

在视图中我想更改它,因为我有以下代码,但它失败了。

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    //Logout button
    UIBarButtonItem * logout = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(goBack)];
    logout.title = @"Logout";
    nav_delegate.navigationController.navigationItem.leftBarButtonItem = logout;
    [logout release];
}

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

实现backBarButtonItem用于使用pushViewController的超级视图控制器:subViewController。

例如,如果您已为其超级视图控制器Logout推送视图控制器:

[self.navigationController pushViewController:subViewController animated:YES];

然后,您应该在超级视图中实现backBarButtonItem,这是Logout视图, NOT in the push subViewController

因此,要实现backBarButtonItem,可以在超级视图Logout中执行,例如:

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:logoutViewTitle style:UIBarButtonItemStyleBordered target:nil action:nil];

你可以在 - (void)viewDidLoad中进行静态使用,或者在 - (void)viewWillAppear:(BOOL)动画用于动态使用,用于设置标题而不分配和初始化。

还有一个提示:在界面构建器中,有backBarButtonItem标题的输入字段。但是如果你没有输入,你必须在.m文件中分配和初始化带有标题的backBarButton,就像上面的代码一样。如果你输入了静态使用的标题,我相信你可以通过使用:

来改变它
[self.navigationItem.backBarButtonItem setTitle:logoutViewTitle];

希望它有所帮助。

答案 1 :(得分:1)

在上一个视图控制器上设置backBarButtonItem(按后退按钮时将返回的控制器)。

答案 2 :(得分:1)

这是答案。在视图控制器中:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"X";
    //Logout button
    UIBarButtonItem * logout = [[UIBarButtonItem alloc] initWithTitle:@"Logout" style: UIBarButtonItemStylePlain target:self action:@selector(goBack)];
    self.navigationItem.leftBarButtonItem = logout;
    [logout release];
}