我想使用自定义后退按钮.在iOS 6中,一切都很完美,但iOS 7很奇怪.
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"back_button_normal"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12.0, 0, 12.0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
首先,它没有iOS 7箭头,也没有背景图像.
(俄语语言环境)

然后,如果按下按钮,则会出现背景图像.此外,我为UIControlStateHighlighted状态设置了背景图像,当您按住按钮时,按下突出显示的图像也会出现.按下任何后退按钮后,所有后退按钮都有背景图像.

但!如果您提供模态视图控制器,将其关闭,然后按任何视图控制器 - iOS 7每个后退按钮都会出现箭头.
我用的是DP5.这是UIKit的错误吗?
PS我还试图手动创建后退按钮,使用UIBarButtonItem,设置背景图像,然后self.navigationItem.backBarButtonItem = barButtonItem;没有帮助.然后我尝试将背景图像设置为禁用状态并更改我的栏按钮项的启用属性,也没有帮助.

我遇到[UIBarButtonItem appearance]了后退按钮背景图像的一些问题.
通常(iOS 5和iOS 6)我能够设置后退按钮的背景图像,如下所示:
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
但在iOS 7中,背景图像不会显示在后退按钮上.奇怪的是,当触摸后退按钮一次时,背景图像实际出现.
我已经尝试为所有状态设置图像,以测试iOS 7是否使用某种新状态用于未触摸的后退按钮,但似乎并非如此.
你有什么想法,我做错了什么?
我正在设置self.navigationItem.rightBarButtonItem = self.editButtonItem; 在viewDidLoad这个在iOS <7中工作完美我在下面,为什么不是以标题为中心?我究竟做错了什么?

此外,当有一个后退按钮并且至少没有被点击一次我得到:

点击后我得到:

按钮的背景在app delegate中设置:
// Change the appearance of back button
UIImage *backButtonImage = [[UIImage imageNamed:@"backbtn"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 6)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
// Change the appearance of other navigation button
UIImage *barButtonImage = [[UIImage imageNamed:@"btn"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
[[UIBarButtonItem appearance] setBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)