美文网首页iOS开发系列iOS移动开发ios工具大全
iOS - 一句话处理导航自定义返回键之第三方处理

iOS - 一句话处理导航自定义返回键之第三方处理

作者: WhoJun | 来源:发表于2015-09-15 11:19 被阅读3006次

    最近看到一个哥们,在简信发了一个处理自定义返回键的文章。

    那篇文章的用法我以前我就用过了,但是有个很严重的bug,就是会卡界面,虽然这个bug不太好触发。

    以前我以为只要苹果提供的改一些值是没问题的,但是我错了,太小看苹果内部封装的处理了。

    UINavigationController 里面有个手势。

    //UINavigationController.h
    @property(nullable, nonatomic, readonly) UIGestureRecognizer *interactivePopGestureRecognizer NS_AVAILABLE_IOS(7_0);
    

    在网上有很多帖子都在写只有将这个手势的delegate重新赋值,就会有在pop的返回手势。

    self.interactivePopGestureRecognizer.delegate = self;
    

    这个确实是有这个返回手势效果,但是会延伸出一个bug,就是之前说的卡界面。

    那么如何解决。

    其实解决思路有很多,我之前写的,就是添加个手势在UINavigationControllerview 中自己处理。

    但是耦合性太强,最主要太挫了,不符合我的理念。

    所以在网上找了两个不错的第三方,分别是MLTransitionFDFullscreenPopGesture

    这两种返回有啥区别呢?

    MLTransition


    这一个返回效果是跟iOS7以上原生自带的返回效果是一样的,并且处理了对scrollView的冲突。

    目前我在写的app也在使用它。

    他的实现方式是全局的,只需要一句话,非常简单,还有两种手势任你挑选。

    //WJAppDelegate.m
    @implementation WJAppDelegate
    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        //nav 手势处理 , MLTransitionGestureRecognizerTypeScreenEdgePan,MLTransitionGestureRecognizerTypePan
        [MLTransition validatePanPackWithMLTransitionGestureRecognizerType:MLTransitionGestureRecognizerTypeScreenEdgePan];
        return YES;
    }
    ...
    @end
    

    FDFullscreenPopGesture


    这个是百度的大神写的返回手势。

    目前多个百度app都在使用(百度知道,百度贴吧等),还有一些其他APP也在使用这个。

    具体返回效果很炫酷,丝滑流畅。

    非常感谢这个作者提供开源。

    具体用法我不说了,会在参考上贴上此作者的博客链接。

    参考:

    molonhttps://github.com/molon/MLTransition

    @我就叫Sunny怎么了http://blog.sunnyxx.com/2015/06/07/fullscreen-pop-gesture/

    总结:

    返回手势这一块,应该有很多人纠结,我也纠结过。

    以上提供两种方法,看具体需求使用。

    ps:此文章以上两个第三方作者觉得我侵权可以在新浪微博私信我。@千年一之后

    相关文章

      网友评论

      • 839455c2230a:在下是molon,感谢分享我的库。
        其实我的库从去年一月份写好之后自己的app并没有用上。
        因为中间拖返实际上对我来说不是太有必要,反而可能影响到一些其他交互。
        而边界拖返的话,使用appearance全局修改返回图标的方式直接就得到了解决,无需设置leftNavigationItem就可以。

        在下不善写文,有兴趣的话可以尝试我新开源库MLInputDodger。
        另外,我的所有库全部放心无偿任意用,不必客气。 :blush:
        七夜叹one:前排膜拜大神,,,:smile: :smile:
        WhoJun:@molon_ 我也感谢你写了这个库,能够解决我手势冲突。
        我也不善于写文章,我只是把经历过的问题,写出来而已。 :smile:

      本文标题:iOS - 一句话处理导航自定义返回键之第三方处理

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