博客> iOS 基于MVC设计模式的基类设计
iOS 基于MVC设计模式的基类设计
2018-12-16 11:08 评论:0 阅读:231 iOS雯Ping
iOS开发 移动开发 程序员 iOS程序员

本篇文章笔者将只详述:CMHViewController,CMHTableViewController,CMHCollectionViewController,CMHWebViewController这四个基类的设计说明和使用场景,以及配备大量Example来解释说明基类暴露出来的属性和API。社会我Mike,人狠话不多,基类的使用,笔者一一道来。

CMHViewController

CMHViewController 是整个项目中所有自定义的视图控制器(ViewController)的基类,继承于UIViewController。CMHViewController主要任务是为其子类提供一些基础的配置和API,方便子类去配置和重写,来满足不同的业务场景。详情请查看CMHViewController.h文件内容。CMHViewController.h的使用示例都放在MainFrame文件夹中。划重点 开发者只需要在其子类重写init方法,然后配置一些属性即可,代码如下:

/// 重写init方法,配置你想要的属性- (instancetype)init{    self = [super init];    if (self) {        /// (是否取消掉当前控制器左滑pop到上一层的功能(栈底控制器无效),NO: 不取消<默认>,YES: 禁止侧滑左侧返回)        self.interactivePopDisabled = YES;        /// 禁止侧滑场景:        /// 1. 主要是防止一些当前控制器的手势与侧滑手势冲突,比如图片浏览器,图片贴纸 ...等        /// 2. 不希望侧滑返回上一层,比如点击右上角返回按钮,返回到根视图    }    return self;}

CMHViewController.h属性的使用:

/// FDFullscreenPopGesture/// (是否取消掉左滑(侧滑)pop到上一层的功能(栈底控制器无效),默认为NO,不取消)@property (nonatomic, readwrite, assign) BOOL interactivePopDisabled;

该属性控制当前控制器(PS:当前控制器是被Push进来的)是否取消掉侧滑Pop的功能,注意栈底控制器无效。这个侧滑返回的功能是iOS开发中比较常见的,且iOS系统在iOS 7以后也自带这种边缘触发手势UIScreenEdgePanGestureRecognizer并且其只有一个属性叫edges,用来设置它的触发边缘(上、下、左、右、全部),但是只支持侧滑屏幕边缘才有效。而笔者的侧滑是全屏的,当然该功能的实现则得益于FDFullscreenPopGesture。其示例代码请参照:MainFrame/Example00

/// FDFullscreenPopGesture/// 是否隐藏该控制器的导航栏 默认是不隐藏 (default is NO)@property (nonatomic, readwrite, assign) BOOL prefersNavigationBarHidden;

该属性控制当前控制器的导航栏的显示或隐藏功能。正常情况下我们常见的显示或隐藏导航栏代码无非是下面

收藏
0
sina weixin mail 回到顶部