设置后退按钮自定义 Outlook 不起作用



我在设置图像时遇到了一些困难。。奇怪的是,在不同的控制器中,它确实起作用。可能self.navigationItem无效,但为什么我只是从不同的ViewController推送ViewController。。?

我试过:

// preview buttonImage shows that image is correct and exists
UIImage *buttonImage = [[UIImage imageNamed:@"back"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithTitle:@"TEST" style:UIBarButtonItemStylePlain target:nil action:NULL];
[buttonItem setBackButtonBackgroundImage:buttonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
self.navigationItem.backBarButtonItem = buttonItem;

不同的方法:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"TEST" forState:UIControlStateNormal];
[button setImage:buttonImage forState:UIControlStateNormal];
buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.backBarButtonItem = buttonItem;

我想也许self.navigationItem是错误的,但它似乎存在:

NSLog(@"%@, %@", self.navigationItem, self.navigationItem.backBarButtonItem);
--CONSOLE-- MyApp[56574:3827402] <UINavigationItem: 0x7b6ecd10>, <UIBarButtonItem: 0x7b6f01c0>

我甚至尝试过设置:

self.navigationItem.backBarButtonItem = nil;

似乎也不起作用。

--编辑--

但是以下代码确实有效:

[self.navigationItem setHidesBackButton:YES];

这表明self.navigationItem是有效的。

显然是Ach。我忘记了,对于新的iOS,我正在设置:
UIImage *backImage = [UIImage imageNamed:@"back"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backImage forState:UIControlStateNormal barMetrics:UIBarMetricsCompact];

所以我需要为这个控制器更改它,在那里我想使用不同的图像。

最新更新