Ω我一直在尝试这样做一个小时,似乎没有任何效果:
我尝试过的事情:
1) 不起作用。
UIImage *image = [UIImage imageNamed:@"scr1_button_topbar.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage: [image stretchableImageWithLeftCapWidth:7.0 topCapHeight:0.0] forState:UIControlStateNormal];
button.frame= CGRectMake(0.0, 0.0, image.size.width, image.size.height);
[button addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];
UIView *v=[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height) ];
[v addSubview:button];
UIBarButtonItem *forward = [[UIBarButtonItem alloc] initWithCustomView:v];
self.navigationItem.backBarButtonItem= forward;
2)有效,但看起来真的很愚蠢,它在那里留下了“Back”文本。
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"scr2_btnback"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
3) 按钮不显示
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"scr2_btnback"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
并将文本设置为@""
4)设置左栏按钮项目 - 有效,但这有点作弊,我想要后退按钮,而不是左按钮。
UIImage *backImage = [UIImage imageNamed:@"scr2_btnback.png"];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(0, 0, backImage.size.width, backImage.size.height);
[backButton setImage:backImage forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(backButton:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton] ;
self.navigationItem.hidesBackButton = YES;
self.navigationItem.leftBarButtonItem = backBarButtonItem;