需求背景:系统自带的item 左右两边会留一点空隙,而且返回按钮一般都会带有图片,所以就比较难以控制大小,iOS11之后自带的UIBarButtonSystemItemFixedSpace失效了。之前看过这个:http://www.jb51.net/article/126369.htmd
但是没能很好解决
下面是我自己处理的方法
1.把之前返回按钮执行方法注释掉(注意只是注释执行的方法)
2.重新自定义返回按钮
-(void)setNabar{
getWeakSelf
ZTButton *leftButton = [[ZTButton alloc]initWithFrame:CGRectMake(0, 0, 100, SafeAreaTopHeight)];
leftButton.tag = 10;
// leftButton.backgroundColor = [UIColor orangeColor];
[self.navigationController.view addSubview:leftButton];
UIButton *button = [self.navigationController.view viewWithTag:10];
NSLog(@"buttonbutton %@",button);
leftButton.action = ^(ZTButton *button){
[UserDefault setObject:@"0" forKey:@"is_pushnumfileVC"];
NSLog(@"点击返回===");
[ws.navigationController popViewControllerAnimated:YES];
};
}
3.把之前执行的方法放到重新自定义按钮的方法里
4.在viewWillAppear创建,在viewWillDisappear删除(必须有)
-(void)viewWillAppear:(BOOL)animated
{
[self setNabar];
}
-(void)viewWillDisappear:(BOOL)animated{
UIButton *button4 = [self.navigationController.view viewWithTag:10];
[button4 removeFromSuperview];
}
完成。