美文网首页
iOS自定义返回按钮

iOS自定义返回按钮

作者: Operation | 来源:发表于2017-06-23 16:12 被阅读178次

在自定义的导航控制器中重写push方法,然后修改push后的控制器的返回按钮

- (void)viewDidLoad {
    [super viewDidLoad];
    self.interactivePopGestureRecognizer.delegate = nil;
}

/**
 *  通过拦截push方法来设置每个push进来的控制器的返回按钮
 */
-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if (self.childViewControllers.count > 0) { // 如果push进来的不是第一个控制器
        
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
        [btn setTitle:@"" forState:UIControlStateNormal];
        [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
        [btn setImage:[UIImage imageNamed:@"top_icon_left"] forState:UIControlStateNormal];
        [btn setImage:[UIImage imageNamed:@"top_icon_left"] forState:UIControlStateHighlighted];
        
        [btn sizeToFit];
        // 让按钮内部的所有内容左对齐
        btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
        
        //设置内边距,让按钮靠近屏幕边缘
        btn.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0);
        [btn addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
        btn.frame = CGRectMake(0, 0, 40.0f, 40.0f);
        viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
        
        viewController.hidesBottomBarWhenPushed = YES; // 隐藏底部的工具条
    }
    
    // 一旦调用super的pushViewController方法,就会创建子控制器viewController的view并调用viewController的viewDidLoad方法。可以在viewDidLoad方法中重新设置自己想要的左上角按钮样式
    [super pushViewController:viewController animated:animated];
    
}

-(void)back
{
    [self popViewControllerAnimated:YES];
}

相关文章

  • 自定义NavigationController的一般过程

    iOS NavigationController侧滑返回失效。 用leftBarButtonItem自定义返回按钮...

  • iOS返回按钮自定义

    引子 iOS导航栏返回按钮的自定义,无非就是自定义文字和自定义图像。 自定义文字 想要返回按钮显示不同的文字,只需...

  • iOS 返回按钮样式设置及相关问题

    1.自定义返回按钮的同时, 保持iOS原生滑动返回手势(interactivePopGestureRecogniz...

  • iOS 11 后如何自定义返回按钮

    iOS 11后自定义返回按钮会偏右,使用UIBarButtonSystemItemFixedSpace已经无效,这...

  • 2018-07-17

    iOS 自定义返回按钮靠右 今天突然发现 返回按钮靠右了,难道系统又改了什么 所以只能从新写了 UIButton*...

  • UINavigationController

    隐藏NavigationBar时的一个坑(很实用)自定义iOS7导航栏背景,标题和返回按钮文字颜色iOS手势返回的...

  • 自定义导航栏返回按钮——2020-07-19

    默认导航栏的返回按钮不是很好看,而且还不想要文字,想替换成自己自定义的返回按钮image。方法还针对iOS 11+...

  • 系统导航右侧按钮侧滑变灰

    需求:自定义返回按钮之后,能正常使用系统侧滑返回。 问题:自定义返回按钮之后,发现侧滑返回时,系统导航右侧按钮侧滑...

  • UINavigationController自定义返回按钮问题

    我们在开发过程中总是会有很多情况下,需要自定义返回按钮的样式,然而我所看到的,在iOS中自定义返回按钮有下面两种方...

  • 侧滑返回功能

    既要自定义返回按钮,也要侧滑返回功能!! 当我们用自定义的按钮覆盖了系统的返回按钮时,侧滑返回功能会失效。 为什么...

网友评论

      本文标题:iOS自定义返回按钮

      本文链接:https://www.haomeiwen.com/subject/wxvccxtx.html