我有以下代码在导航栏上设置后退按钮图像。 导航控制器位于标签栏控制器上。 问题是,当我第一次按下视图时,它显示正确的按钮图像。如果我进入我的设置(在另一个选项卡上)并更改应显示哪个按钮,然后返回选项卡1并再次按相同的视图,即使在if语句中调用了正确的代码,仍然会显示旧的后退按钮! 现在,如果我弹出视图并再次将其重新打开,现在会显示正确的按钮。
我不明白为什么按钮没有改变,即使调用代码来改变它,但在第一次改变之后!每次调用ViewController的viewDidLoad方法,因此它不应该像任何东西一样。
if ([[DataSingleton sharedSingleton] isBlue]) {
NSLog(@"isBlue");
// Set toolBar and button colours
UIImage *navBarImage = [UIImage imageNamed:@"PortraitNavBarBlue"];
[self.navigationController.navigationBar setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
UIImage *barButton = [[UIImage imageNamed:@"backBlue"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 14, 0, 7)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:barButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
} else {
NSLog(@"notBlue");
// Set toolBar and button colours
UIImage *navBarImage = [UIImage imageNamed:@"PortraitNavBar"];
[self.navigationController.navigationBar setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
UIImage *barButton = [[UIImage imageNamed:@"back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 14, 0, 7)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:barButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
}
我认为条形颜色可能正在改变,因为我调用self.navigationController.navigationBar而后退按钮我调用[UIBarButtonItem外观]这是一个全局设置。 有没有办法直接引用后退按钮?