最近因项目需要,自己写了一个采用MVC模式的oc纯代码的抽屉模板,so总结分享一下。如果哪里有错误或者不正规的敌方还请各位大神指正。废话不多说,开始上干货。
1、新建项目准备工作
首先:删除launchScreen.storyboard 和Main.storyboard,并作相应的配置。
(1)在ASsets.xcassets下创建LaunchImage并设置对应的启动图
(2)进行一些必要的设置:
注意:如果没有选择launchImage或者在launchImage中缺少retian4的启动图,屏幕就会出现上下黑边。
(3)创建并配置pch文件:
创建:
配置:
其次:使用pod导入SWRevealViewController库、AFNetWorking库和MBProgressHD库
最后:搭建项目,项目的目录结构如下:
以上结构是本人习惯用的程序结构图,可以根据个人爱好来进行自行组织。这里只作一个推荐。
2、具体实现:
初始化抽屉:
NKNavigation设置导航栏的统一样式:
网网络类代码实现:
.h文件
.m..m具体实现
其余具体请求就不详细列举了。
基类的实现:继承NKNetWorkController类,实现抽屉效果
.h文件
.m文件
基础类之间的继承关系:
NKBaseController继承NKNetWorkController,使其具有网络请求的功能;
其他业务逻辑类继承NKBaseController,业务逻辑类就有了抽屉滑动效果和网络请求功能,并具有统一的样式。
3、细节调整
(1)创建UINavigationController的类别UINavigationController+NK,实现下面的方法
(2)在NKBaseController中根据actionType来决定当前frontController是否支持panGesture,遵守SWRevealViewControllerDelegate协议
4、demo效果图:
源代码地址:https://github.com/NickerZhang/NKSWRevealViewControllerTemplate