最简单的push设置自定义backBarButtonItem(文字、图片、图文)

来源:互联网 发布:方知父母恩上一句 编辑:程序博客网 时间:2024/06/05 09:37

问题:A控制器pushB控制器后,自定义设置B控制器的左边返回按钮,又不影响手势滑动(图片按钮、文字按钮、图文按钮)

原先写了一个方法,ios11出来后就出现了bug,找了好久,又综合以前的方法,写了下边这种解决方案。

1、写一个宏定义:

#define BACK_PUSH_ONLYICON self.navigationController.navigationBar.backIndicatorImage = [UIImage imageNamed:@"back_icon"];self.navigationController.navigationBar.backIndicatorTransitionMaskImage = [UIImage imageNamed:@"back_icon"];self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.00];UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];self.navigationItem.backBarButtonItem = backItem;

这个是图片按钮,其中back_icon是图片名称。

文字按钮:

#define BACK_PUSH   UIBarButtonItem * item = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];self.navigationItem.backBarButtonItem = item;self.navigationController.navigationBar.barStyle = UIStatusBarStyleDefault;[self.navigationController.navigationBar setTintColor:[UIColor blackColor]]; self.navigationItem.backBarButtonItem = item;
系统返回按钮,不带文字:

#define BACK_PUSH   UIBarButtonItem * item = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];self.navigationItem.backBarButtonItem = item;self.navigationController.navigationBar.barStyle = UIStatusBarStyleDefault;[self.navigationController.navigationBar setTintColor:[UIColor blackColor]]; self.navigationItem.backBarButtonItem = item;
这几个根据需求自己选择。

2、在push代码写完后,调用宏定义,如下:

{    ExtensionApplyViewController *extensionVC = [[ExtensionApplyViewController alloc]init];    extensionVC.hidesBottomBarWhenPushed = YES;    [self.navigationController pushViewController:extensionVC animated:YES];    BACK_PUSH_ONLYICON;}


只要在push的地方相应调用宏定义即可解决问题。





阅读全文
0 0