iphone - UINavigationController 中的自定义后退按钮

标签 iphone uinavigationcontroller

对于我正在开发的应用程序,我需要在导航栏中显示自定义后退按钮。我有一个 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 的标题。

我已经尝试过的事情:

  1. 通过将按钮 backButton 添加到 View 层次结构中,仔细检查按钮 backButton 是否已正确创建。它显示正确。
  2. 用同样的方法,更改了 navigationItemtitle 属性,并确认它更改了(按预期)后退按钮的内容。

有人能发现我做错了什么吗?有人成功使用自定义图像作为 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/

相关文章:

ios - didMoveToParentViewController 和 willMoveToParentViewController

iphone - 即使将 NSZombiesEnabled 设置为 YES,EXEC BAD ACCESS 也不会显示跟踪/日志

iphone - 从 iPhone 调用 Amazon S3 服务的安全性如何?

iphone - 一个 Xib 文件用于 2 种状态 : showing & editing a object

ios - 使用 Storyboard向 UINavigation 堆栈中的嵌套 View 添加右键

html - 移动网页布局不一致问题

iphone - 苹果游戏中心 API

swift - 如何在单个 View 中将多个可选图像添加到 UIImagePickerControllerDelegate?

xcode - 您如何管理 UINavigationController View 中的事件以切换 View ?

ios - 使用 PPBadgeView 的自定义角标(Badge)未显示在导航项中 - swift