iOS 万能跳转界面方法 (runtime实用篇一)
2015-08-24 11:04
281 查看
http://www.cocoachina.com/ios/20150824/13104.html
作者:汉斯哈哈哈 授权本站转载。
在开发项目中,会有这样变态的需求:
推送:根据服务端推送过来的数据规则,跳转到对应的控制器
feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)
思考:wocao!这变态的需求,要拒绝他吗?
switch判断呗,考虑所有跳转的因素?这不得写死我...
我是这么个实现的(runtime是个好东西)
利用runtime动态生成对象、属性、方法这特性,我们可以先跟服务端商量好,定义跳转规则,比如要跳转到A控制器,需要传属性id、type,那么服务端返回字典给我,里面有控制器名,两个属性名跟属性值,客户端就可以根据控制器名生成对象,再用kvc给对象赋值,这样就搞定了 ---O(∩_∩)O哈哈哈
比如:根据推送规则跳转对应界面HSFeedsViewController
HSFeedsViewController.h:
进入该界面需要传的属性
AppDelegate.m:
推送过来的消息规则
接收推送消息
跳转界面
检测对象是否存在该属性
具体使用和代码: https://github.com/HHuiHao/Universal-Jump-ViewController
作者:汉斯哈哈哈 授权本站转载。
在开发项目中,会有这样变态的需求:
推送:根据服务端推送过来的数据规则,跳转到对应的控制器
feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦,可能是这个又可能是那个,能给我做灵活吗?根据后台返回规则任意跳转?)
思考:wocao!这变态的需求,要拒绝他吗?
switch判断呗,考虑所有跳转的因素?这不得写死我...
利用runtime动态生成对象、属性、方法这特性,我们可以先跟服务端商量好,定义跳转规则,比如要跳转到A控制器,需要传属性id、type,那么服务端返回字典给我,里面有控制器名,两个属性名跟属性值,客户端就可以根据控制器名生成对象,再用kvc给对象赋值,这样就搞定了 ---O(∩_∩)O哈哈哈
比如:根据推送规则跳转对应界面HSFeedsViewController
HSFeedsViewController.h:
进入该界面需要传的属性
推送过来的消息规则
相关文章推荐
- iOS中block的使用、实现底层、循环引用、存储位置
- ios 取消左滑手势
- ios下最简单的正则,RegexKitLite
- iOS学习笔记18- iOS检查版本更新
- IOS常用宏定义
- IOS 断点下载
- iOS学习笔记17-直接拿来用!最火的iOS开源项目(三)
- iOS学习笔记16-直接拿来用!最火的iOS开源项目(二)
- iOS学习笔记15- 直接拿来用!最火的iOS开源项目(一)
- iOS 万能跳转界面方法 (runtime实用篇一)
- IOS JSON
- iOS oc 回顾与复习
- 探讨iOS某个像素点是否显示依据,以摸索为什么iOS没适配的应用在iphone6上面线的粗细会不稳定。有的线会变粗
- iOS 万能跳转界面方法 (runtime实用篇一)
- iOS 自带方法解析json
- iOS- 详解文本属性Attributes
- iOS- 详解文本属性Attributes
- IOS画线条
- iOS中的动画
- 如何理解苹果iOS版PhoneGap原理分析