項目中使用
UIImage *backImg = [[UIImage imageNamed:@"kqBlack_back_icon"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 30, 0, 0)];
? ? [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backImg forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
整體設置導航欄返回按鈕, 在ios11之前都是好的,但是ios11之后,就出現(xiàn)了問題,返回按鈕被遮蓋了,就剩下一點點,如圖所示:
解決方法:
1, 不使用UIImage *backImg = [[UIImage imageNamed:@"kqBlack_back_icon"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 30, 0, 0)];
? ? [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backImg forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 整體設置返回按鈕,將這兩句代碼注釋掉或者刪掉.
2, 重寫- (void)pushViewController:(UIViewController*)viewController animated:(BOOL)animated 方法,我的項目里是直接自己創(chuàng)建的添加手勢的NavigationController,沒有使用系統(tǒng)的手勢,所以是自定義的NavigationController.
在導航控制器里重寫pushViewController方法,并添加返回按鈕:
這樣就可以解決在ios11.0 or 11+ 上導航欄的返回按鈕被遮蓋的問題了,而且還可以整體設置,不用再每個controller里單獨設置.