ios – 自定义BackBarButtonItem

我正在尝试使用自定义图像自定义backBarButtonItem(文本“back”包含在该图像中),这是当前结果:

http://i.imgur.com/rFxFt.png

有谁知道为什么会这样?

这是我在viewDidLoad上的代码(实际上在父控制器上运行,然后再在具有后退按钮的新控制器上运行)

UIImage *backButtonImage = [UIImage imageNamed:@"Graphics/Shared/navigation_back_button.png"];


UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
                               initWithImage:backButtonImage
                               style:UIBarButtonItemStylePlain 
                               target:nil 
                               action:nil];


self.navigationItem.backBarButtonItem = backButton;

编辑:我顺便使用iOS 5!也许外观代理是可用的,但到目前为止,当我尝试将它用于后退按钮的东西(在appDelegate中)时,应用程序简单崩溃.

解决方法

好吧,我解决了这个问题,使用了一些粗略的技巧,但至少它有效.如果有人想出更标准的解决方案,请告诉我!

这是我的代码

UIImage *backButtonImage = [[UIImage imageNamed:@"Graphics/Shared/navigation_back_button.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0,0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage  forState:UIControlStatenormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0,backButtonImage.size.height*2) forBarMetrics:UIBarMetricsDefault];

这是我appdelegate的方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

为了在将它用作背景时阻止它伸展,我使用了iOS 5: How to implement a custom (image) back button的想法

但后来调整它而不是必须设置 –

self.title = @" ";

在每个视图加载(也可能会混淆导航栏标题本身)

我只是将“后退”按钮文本的偏移设置为图像高度的两倍,因此您永远不会看到它.

为什么要解决所有这些麻烦,而不是使用左键按钮来使用它自己的方法来弹出视图控制器?

主要原因是您丢失了标准后退按钮滑动动画以更改视图.此外,这意味着我不需要使用自定义按钮或编写自定义方法返回.它只是起作用.

希望这也能解决别人的问题,我知道我已经坚持了3个小时!

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...