iOS 万能跳转界面方法 (runtime实用篇一)
2016-04-20 15:40
281 查看
在开发项目中,会有这样变态的需求:
推送:根据服务端推送过来的数据规则,跳转到对应的控制器
feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)
思考:wocao!这变态的需求,要拒绝他吗?
switch判断呗,考虑所有跳转的因素?这不得写死我...
我是这么个实现的(runtime是个好东西)
利用runtime动态生成对象、属性、方法这特性,我们可以先跟服务端商量好,定义跳转规则,比如要跳转到A控制器,需要传属性id、type,那么服务端返回字典给我,里面有控制器名,两个属性名跟属性值,客户端就可以根据控制器名生成对象,再用kvc给对象赋值,这样就搞定了 ---O(∩_∩)O哈哈哈
比如:根据推送规则跳转对应界面HSFeedsViewController
HSFeedsViewController.h:
进入该界面需要传的属性
AppDelegate.m:
推送过来的消息规则
接收推送消息
跳转界面
检测对象是否存在该属性
推送:根据服务端推送过来的数据规则,跳转到对应的控制器
feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)
思考:wocao!这变态的需求,要拒绝他吗?
switch判断呗,考虑所有跳转的因素?这不得写死我...
利用runtime动态生成对象、属性、方法这特性,我们可以先跟服务端商量好,定义跳转规则,比如要跳转到A控制器,需要传属性id、type,那么服务端返回字典给我,里面有控制器名,两个属性名跟属性值,客户端就可以根据控制器名生成对象,再用kvc给对象赋值,这样就搞定了 ---O(∩_∩)O哈哈哈
比如:根据推送规则跳转对应界面HSFeedsViewController
HSFeedsViewController.h:
进入该界面需要传的属性
推送过来的消息规则
相关文章推荐
- iOS dispatch_semaphore_t
- 【IOS】JsonModel的使用
- iOS 学习笔记七 【博爱手把手教你使用2016年gitHub Mac客户端】
- iOS播放器之基于VLCKit的自定义播放器
- iOS开发--Mac下服务器搭建
- iOS 手机号正则
- iOS热更新-JSPatch实现原理+Patch现场恢复
- 【iOS】XIB 调整视图大小
- iOS开发中tableView中的单独刷新一行或者是某一个Section
- 【iOS】[[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil] 异常
- iOS delegate、notification、KVO如何选择
- iOS开发------简单实现图片多选功能(AssetsLibrary篇)
- IOS、Android html5页面输入的表情符号变成了乱码”???“
- ios开发多线程篇——GCD的常见用法
- iOS中强制转某个页面为横屏,键盘也横屏
- iOS - 系统自带的分享功能
- 史上最全的环信iOS 2.x and 3.x SDK单聊的集成方案!
- iOS 键盘弹出时获取键盘的高度
- ios开发多线程篇——GCD的基本使用
- iOS之在写一个iOS应用之前必须做的7件事(附相关资源)