iOS灵活跳转,iOS万能跳转,iOS跳转管理功能的实现
来源:互联网 发布:单片机程序破解 编辑:程序博客网 时间:2024/05/21 17:16
比如客户端有x个页面,每个页面的数据从后台取并且每个页面的json数据key不一样,点击事件也是后台传过来的,跳转的界面都有可能是原生界面、webview、其他类型界面。这样跳来跳去就需要一个类来专门管理跳转。
首先数据key不一致 :
SuKoModel:
{
NSString *url//跳转地址
NSString *name//按钮名称
还有很多:比如是否有导航条,
导航条的title,是否需要登录。。
}
MyModel
{
NSString *detailUrl//跳转地址
NSString *btnName//按钮名称
...}
然后对于跳转链接也有规定,
按钮的点击事件分别是
- (void)btnClicked:(UIButton *)btnn{ if (btnn.tag == 0) { // //每个按钮对应的model // SuKoModel *model = [[SuKoModel alloc]init]; model.url = @"http://blog.csdn.net/qq_15509071/article/details/71123323"; model.name = @""; [JumpManager jumpToControllerWithModel:model OriginalController:self]; }else if(btnn.tag == 1){ SuKoModel *model = [[SuKoModel alloc]init]; model.url = @"native://ZhuanZhangViewController"; model.name = @""; [JumpManager jumpToControllerWithModel:model OriginalController:self]; }else{ SuKoModel *model = [[SuKoModel alloc]init]; model.url = @"native://HuiKuanViewController"; model.name = @""; [JumpManager jumpToControllerWithModel:model OriginalController:self]; }}
- (void)btnClicked:(UIButton *)btnn{ if (btnn.tag == 0) { MyModel *moel = [[MyModel alloc]init]; moel.detailUrl = @"native://JieKuanViewController"; [JumpManager jumpToControllerWithModel:moel OriginalController:self]; }else if(btnn.tag == 1){ MyModel *moel = [[MyModel alloc]init]; moel.detailUrl = @"http://blog.csdn.net/qq_15509071/article/details/70379690"; [JumpManager jumpToControllerWithModel:moel OriginalController:self]; }else{ }}
需要把不同的model转换为统一字段的model
+(JumpModel *)changeModel:(id)model{ JumpModel *jumpModel = [[JumpModel alloc]init]; if ([model isKindOfClass:[SuKoModel class]]) { jumpModel.jumpUrl = ((SuKoModel*)model).url; }else if([model isKindOfClass:[MyModel class]]){ jumpModel.jumpUrl = ((MyModel*)model).detailUrl; } return jumpModel;}
跳转类方法
+(void)jumpToControllerWithModel:(id)model OriginalController:(id)originalController;{ JumpModel *jumpModel = [JumpManager changeModel:model]; UIViewController *localOriginalController = originalController; if ([jumpModel.jumpUrl hasPrefix:@"http:"]) { WebViewController *controller = [[WebViewController alloc]initWithURL:jumpModel.jumpUrl]; [localOriginalController.navigationController pushViewController:controller animated:YES]; }else if([jumpModel.jumpUrl hasPrefix:@"native:"]){ NSString *controllerString = [jumpModel.jumpUrl stringByReplacingOccurrencesOfString:@"native://" withString:@""]; UIViewController *vc = [[NSClassFromString(controllerString) alloc]init]; [localOriginalController.navigationController pushViewController:vc animated:YES]; }}
示例工程下载地址:百度网盘点击打开链接
0 0
- iOS灵活跳转,iOS万能跳转,iOS跳转管理功能的实现
- ios (底层runtime)实现万能跳转
- iOS 万能跳转界面方法
- iOS开发中,万能跳转
- iOS 跳转
- iOS 万能跳转界面方法 (runtime)
- iOS 跳转的方式
- ios 页面的跳转
- iOS的页面跳转
- ios跳转设置各种功能
- 将ios客户端的页面跳转做灵活
- ios两页面跳转实现
- ios 实现任意窗体跳转
- iOS开发实现页面的跳转
- iOS 实现应用之间的跳转
- Swift实现IOS界面的跳转
- Swift实现IOS界面的跳转
- iOS 万能跳转界面方法(实用推送跳转、不固定界面跳转)
- Redis性能问题排查解决手册
- Ubuntu下安装flash player指令
- TensorFlow学习(一):感受一下
- 初识Maven(一)——安装Maven
- 信息安全工程师 学习笔记(十九)
- iOS灵活跳转,iOS万能跳转,iOS跳转管理功能的实现
- jq获取当期日期 以及计算获取几天前的日期
- GCJ 2017 R2 题解(待续)
- ORACLE 常见等待事件
- CUDA-GPU programming Introduction (5)
- 常见的网站服务器架构有哪些?
- Unity 游戏用XLua的HotFix实现热更原理揭秘
- [Updating] Tinkoff Challenge
- 解析web.xml文件