很多情況下的設(shè)計使得我們不能使用系統(tǒng)導(dǎo)航欄自帶的返回按鈕樣式,而我們又不想自定義導(dǎo)航欄,這要怎么辦呢?網(wǎng)上給的很多辦法都是自定義導(dǎo)航欄的leftBarButtonItem,當(dāng)然這可以解決這個問題,今天我要說的是另外一種方法,網(wǎng)上也有介紹,首先我們看一下系統(tǒng)的效果:

然后給出另外一種方法(注:圖片必須為可拉伸圖片)
?UIImage *backButtonImage = [[UIImage imageNamed:@"back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 25, 0, 0)];
?[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
?[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(NSIntegerMin, NSIntegerMin) forBarMetrics:UIBarMetricsDefault];
很好理解,選擇我們要使用的圖片替換返回按鈕的圖片,然后使返回按鈕的標(biāo)題不顯示(注:此處在有的機型可能會出現(xiàn)問題,不建議使用此方法,建議寫一個UINavigationController的類別處理返回按鈕的標(biāo)題,下面附上方法)。
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPushItem:(UINavigationItem *)item{
UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
item.backBarButtonItem = back;
return YES;
}
最后我們看一下效果:
