ios项目结构处理

来源:互联网 发布:js pagehide 编辑:程序博客网 时间:2024/06/08 07:09

首先安装了cocoapod环境和cocoapod客户端。

如果遇到问题可以参考之前的文章cocopod坑。

中途有不一样的地方是rvm至少要2.2.2版本了,之前只需要2.2版本

注意更新。

然后根据业务需求引入了第三方库,

客户端的代码页面

这里写图片描述

shareSDK的导入需要一定的时间,耐心等待

pod完成界面

这里写图片描述

每次添加记得要shem里面编译一下.a文件才能使用

这里写图片描述

然后是项目分层

首先整理一下Main层,就是tabbar层,不管有没有tabbar,

先放在这里,方便以后扩展

这里写图片描述

controller就是tabbarController ,

创建了navigationController的分类,

是为了在入口住就控制住导航栏的颜色属性,

里面保持一致,避免导航管理颜色混乱。

将Appdelegate 和Main.storyboard也转移到这里,整齐一些

然后common类,具体完成再谈

这里写图片描述

业务类MVC,
这里写图片描述

界面都是通过storyboard进行控制的,

虽然一开始就隐藏了tabbar ,但是使用的时候底部还是有黑边

后来尝试变更一些属性,才把黑边去掉

这里写图片描述

猜测是添加的蓝色view一开始设定为底部有tabbar,

所以tabbar部分就没有内容了,选择这个应该就会覆盖了。

暂时到此。

注意到

uibarbuttonitem image 是蓝色的,系统默认都是蓝色的

是因为TintColor 默认为蓝色的,

修改方式

这里写图片描述

选中这个左边,点击改变tint的颜色即可。

然后是

左边按钮,我的业务搭建,

一开始,我想把我的业务和登录业务写成一个MVC

担心以后出现需要分离的情况,现在写成两个业务类

首先添加我的类

我的类需要单独的storyboard,但是希望公用之前的navigation,

采用8.0以后的单独分离控制器的方法

这里写图片描述

记得改类名为Me

这里写图片描述

主页变成:

这里写图片描述

改变后的结果

注意到navigation还是存在的,完成了需求

这里写图片描述

同理,完成设置跳转

然后就是

我的界面和 登录界面的逻辑关系

这里当从主页点击到我的页面按钮时

会根据是否存在APP远程登录信息来进行判断界面是否需要

直接跳转到登录界面去

if(账号未登录)
{ 跳转到登录界面。 }
else
{ 跳转到我的界面。 }

登录成功就要返回到我的界面,显示我的信息,

所以这里如果没登录过,就连续两次入栈,先入栈我的,再入栈登

录,只展示最后一个,出栈的时候也判断是否登录成功,登录成功就

出栈一次,没有的话,就出栈两次

这里需要代码控制跳转:

具体代码:

UIStoryboard *secondStroyBoard=[UIStoryboard storyboardWithName:@"CustomerMain" bundle:nil];NewPersonController *newPersonController=[secondStroyBoard instantiateViewControllerWithIdentifier:@"NewPersonController"];UserBasicInfoViewController *dv= [secondStroyBoard instantiateViewControllerWithIdentifier:@"UserBasicInfoViewController"];dv.delegate = newPersonController;dv.isFirstTime = YES;NSMutableArray * viewAry = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];[viewAry addObject:newPersonController];[viewAry addObject:dv];[self.navigationController setViewControllers:viewAry animated:YES];

开始处理登录流程

点击查看登录业务的逻辑流程

引用旧项目中的登录界面

这里写图片描述

去除掉旧项目中网络请求的部分,
网络请求结果先注释,后期只用修改请求
结果逻辑不变

添加了一些common类的文件

这里写图片描述

1.三个控制器是新添加的界面

2.common类用于存储全局的宏

3.uibutton的分类用于设置高亮

沿用旧版的DataBase管理

开始引入AFN的配置

AFN有两套方案

看一下两套哪一套比较适合

AFN的baseURL跳转

其实就是子类化AFHTTPSessionManager

然后就可以在调用post方法前做一些操作,在返回结果前再做一些操作,就完成了所有数据的统一处理。

0 0