iOS 11.0 导航栏返回按钮被遮盖问题

项目中使用

UIImage *backImg = [[UIImage imageNamed:@"kqBlack_back_icon"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 30, 0, 0)];

    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backImg forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

整体设置导航风格,字体和返回按钮

整体设置导航栏返回按钮, 在ios11之前都是好的,但是ios11之后,就出现了问题,返回按钮被遮盖了,就剩下一点点,如图所示:

解决方法:

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 方法,我的项目里是直接自己创建的添加手势的NavigationController,没有使用系统的手势,所以是自定义的NavigationController.

在导航控制器里重写pushViewController方法,并添加返回按钮:

重写pushViewController方法

这样就可以解决在ios11.0 or 11+ 上导航栏的返回按钮被遮盖的问题了,而且还可以整体设置,不用再每个controller里单独设置.

你可能感兴趣的:(iOS 11.0 导航栏返回按钮被遮盖问题)