关于导航返回按钮

2017-05-25  本文已影响60人  心底碎片

一般而言,app的返回按钮都是一致的,所以可以在AppDelegate中做统一的样式,
代码如下:

//修改返回按钮样式
    [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
    //状态栏颜色
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

这样的话,返回按钮的事件就是返回到上一级页面,但是有时候会遇到,需要返回到指定页面,这样的话,就需要自定义返回按钮,问题又出现了,返回按钮跟左侧边距和统一的返回按钮不一致。我也试试了很多种,才找到方法。
就是定义两个按钮,左边的按钮用来控制左边距,右边的才是真正看到的按钮。
代码如下:

self.navigationItem.hidesBackButton = YES;
    UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [backBtn setBackgroundImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
    [backBtn addTarget:self action:@selector(Go2Click) forControlEvents:UIControlEventTouchUpInside];
    backBtn.frame = CGRectMake(0, 0, 22, 33);
    UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithCustomView:backBtn];
    UIBarButtonItem *nagetiveSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
    //自己根据需要设置
    nagetiveSpacer.width = -10;
    //两个返回按钮,一个用来控制左边距
    self.navigationItem.leftBarButtonItems = @[nagetiveSpacer, item];

end

上一篇下一篇

猜你喜欢

热点阅读