Latest 0.0.6
Homepage https://github.com/SummerHF/ZHNavigationController
License MIT
Platforms ios 8.0
Authors

ZHNavigationController

ZHNavigationController
ZHNavigationController
ZHNavigationController
ZHNavigationController
ZHNavigationController

该框架可以快速的让你的每一个控制器都拥有属于自己的navgationBar,实现真正意义上的自定制,同时提供多种手势,多种转场动画的支持,可根据自己的需求自行选择.

Contents

Getting Started【开始使用】

Features 【能做什么】

  • 为每一个控制器定制navigationBar
  • 为每一个控制器添加全屏侧滑返回手势,或者使用系统的左侧侧滑返回手势
  • 单独的禁用某一个页面的侧滑返回手势
  • 禁用全局页面的侧滑返回手势
  • 提供多种类型的侧滑返回交互动画效果
  • 支持3D Touch
  • hidesBottomBarWhenPushed可选显示或隐藏指定页面(默认全部隐藏)
Gesture(手势相关) Function(功能) 支持(enable) 不支持(disable)
禁用手势 禁用全局手势 支持
禁用手势 禁用单个页面手势 支持
半屏侧滑 屏幕左侧边缘右滑Pop 支持自定义样式,支持精度设置 不支持侧滑样式选择(默认使用自定义样式),不支持左滑Push
全屏侧滑 屏幕右滑Pop,左滑Push 支持自定义样式,支持侧滑样式选择(默认使用自定义样式),支持左滑Push(可选) 不支持精度设置.

Features 【实现思路】

大致的需要实现的效果如下

ZHNavigationController

网易新闻

ZHNavigationController

今日头条

我们知道,为了满足多样化的navigation bar需求,仅仅在控制器中修改navigation bar的属性是很难达到上图效果的.因为多个控制器是共用同一个导航条的(同一个栈中的控制器).那么我们该怎么实现上述的效果,大致有三种实现思路:


1. 第一种是使用自定义navigationBar.淘宝,网易新闻,等使用的是这种.
2. 第二种是用截图的办法,在push到下一个页面时,截取屏幕,在使用edgePan来pop时看到的就是背后的截图,也能实现这种效果.京东,天猫等使用的是这种.
3. 第三种是使用了一种比较特别,比较巧妙的办法实现的,为每一个控制器拥有自己独立的导航栏

具体的思路可参考Jerry Tian’s Blog.该框架借鉴的是第三种思路.采用导航控制器包裹的方式在填充到容器视图中,并将该容器视图作为我们导航控制器的根视图控制器,在每次push的时候,都采用上述包裹的方式.

ZHNavigationController

结构图

其中灰色区域的控制器就是你自己的控制器.

Latest podspec

{
    "name": "ZHNavigationController",
    "version": "0.0.6",
    "summary": "a library for manager your viewController better",
    "description": "NavigationControllernFullscreen or halfScreen gesture popnMake your every viewController has their own navigationBarnTODO: Add long description of the pod here.",
    "homepage": "https://github.com/SummerHF/ZHNavigationController",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "SummerHF": "[email protected]"
    },
    "source": {
        "git": "https://github.com/SummerHF/ZHNavigationController.git",
        "tag": "0.0.6"
    },
    "social_media_url": "https://summerhf.github.io/",
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "ZHNavigationController/Classes/**/*",
    "resource_bundles": {
        "ZHNavigationController": [
            "ZHNavigationController/Assets/*.png"
        ]
    }
}

Pin It on Pinterest

Share This