美文网首页Ui
#重写导航栏返回按钮步骤

#重写导航栏返回按钮步骤

作者: _Comma | 来源:发表于2016-09-12 18:08 被阅读57次

    今天突然要重写导航栏返回按钮,就顺便发上来一下,也当自己做笔记,附上详情一份

    首先,建立分类,附图

    分类.h,代码较少就不贴了

    .m,图下面附代码

    #import "UIViewController+BackButtonHandler.h"

    @implementation UIViewController (BackButtonHandler)

    @end

    @implementation UINavigationController (ShouldPopOnBackButton)

    - (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem*)item {

    if([self.viewControllers count] < [navigationBar.items count]) {

    return YES;

    }

    BOOL shouldPop = YES;

    UIViewController* vc = [self topViewController];

    if([vc respondsToSelector:@selector(navigationShouldPopOnBackButton)]) {

    shouldPop = [vc navigationShouldPopOnBackButton];

    }

    if(shouldPop) {

    dispatch_async(dispatch_get_main_queue(), ^{

    [self popViewControllerAnimated:YES];

    });

    } else {

    for(UIView *subview in [navigationBar subviews]) {

    if(subview.alpha < 1.) {

    [UIView animateWithDuration:.25 animations:^{

    subview.alpha = 1.;

    }];

    }}}return NO;}

    最后只需要在重写的控制器里#import "UIViewController+BackButtonHandler.h"

    然后在-(BOOL) navigationShouldPopOnBackButton方法里写自己需要的方法就好

    本人菜鸟一枚,分享也是在努力学习中,有什么写的不好的希望大家多多指正,谢谢

    相关文章

      网友评论

        本文标题:#重写导航栏返回按钮步骤

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