对于我正在开发的应用程序,我需要在导航栏中显示自定义后退按钮。我有一个 PNG 图像的按钮资源,我正在编写以下代码:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, 79, 29.0);
[backButton setImage:[UIImage imageNamed:@"button_back.png"] forState:UIControlStateNormal];
self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:backButton] autorelease];
}
当我按下此 View Controller 时,自定义按钮不会显示,而是显示标准后退按钮,其中包含此 View Controller 的标题。
我已经尝试过的事情:
- 通过将按钮
backButton
添加到 View 层次结构中,仔细检查按钮backButton
是否已正确创建。它显示正确。 - 用同样的方法,更改了
navigationItem
的title
属性,并确认它更改了(按预期)后退按钮的内容。
有人能发现我做错了什么吗?有人成功使用自定义图像作为 UINavigationController
的后退按钮吗?
最佳答案
从 iOS 5 开始,这很简单:
[[UIBarButtonItem appearance]
setBackButtonBackgroundImage:[UIImage imageNamed:@"back_button.png"]
forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
您可以将其放置在应用程序委托(delegate)中,它将为应用程序中的所有后退按钮设置背景图像(当然,对于该控件状态和栏指标)。
关于iphone - UINavigationController 中的自定义后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3506297/