美文网首页
Runtime运用:动态跳转到任何一个类

Runtime运用:动态跳转到任何一个类

作者: 蔚尼 | 来源:发表于2018-05-30 14:41 被阅读12次

研究runtime一段时间后,发现runtime的运用其实很广泛。一个功能的实现也有很多种方法,主要是看我们是否会运用所掌握的知识。

以前遇到过,从服务器获取一部分数据展示一个轮播图。点击轮播图中不同的图片进入到不同的界面。像这样:


轮播图
  • 首先想到的写法是,根据参数写if else判断进入哪个类,然后进行创建、跳转。
  • 学习runtime后,我们可以根据类名获取一个类,像这样:
    Class newClass = objc_getClass(className);
    那我们就可以让服务器把类名传给我们,我们直接通过类名获取到对应的类,进行跳转即可。不需要if else判断,所有的类都统一处理。
    // 这个规则肯定事先跟服务端沟通好,跳转对应的界面需要对应的参数
    NSDictionary *userInfo = @{
                               @"class": @"PushViewController",//类名
                               @"alertStr": @"要提示的内容"//这个类需要的参数
                               };
    
    const char * className = [userInfo[@"class"] cStringUsingEncoding:NSASCIIStringEncoding];
    Class newClass = objc_getClass(className);
    if (!newClass) {//如果没有这个类,进行创建
        
        Class newClass = objc_allocateClassPair([UIViewController class],className , 0);
        objc_registerClassPair(newClass);
        
    }
    //传递至给newClass
    id instance = [[newClass alloc] init];
    [instance setValue:userInfo[@"alertStr"] forKey:@"alertStr"];
    
    // 跳转到对应的控制器
    [self.navigationController pushViewController:instance animated:YES];

相关文章

  • Runtime运用:动态跳转到任何一个类

    研究runtime一段时间后,发现runtime的运用其实很广泛。一个功能的实现也有很多种方法,主要是看我们是否会...

  • ios runtime

    什么是runtime runtime运用 在程序运行过程中,动态的创建类,动态添加、修改这个类的属性和方法 遍历一...

  • 【iOS篇】Runtime的应用

    我们可以运用runtime机制做一些事情,动态的获取类的一些属性和方法,动态添加方法和方法交换。 1、获取类名 动...

  • Runtime 相关 API

    以下列举了使用 Runtime 时常用到的 部分API ,并非全部 Runtime 类 相关 API动态创建一个类...

  • Runtime 04 - 应用(动态创建类、交换方法)

    Runtime 04 - 应用(动态创建类、交换方法) 动态创建类 需要创建的类结构如下 动态创建类的示例 先定义...

  • 类实例方法转成block

    运用runtime可以把一个类方法转成block importFoundationimportUIKitclass...

  • iOS中Runtime常用示例

    Runtime的内容大概有:动态获取类名、动态获取类的成员变量、动态获取类的属性列表、动态获取类的方法列表、动态获...

  • iOS-Runtime

    Runtime的内容大概有:动态获取类名、动态获取类的成员变量、动态获取类的属性列表、动态获取类的方法列表、动态获...

  • 三十一、Runtime之(十四)Runtime相关API

    Runtime相关API01—类 1.动态创建一个类,并为该类添加成员变量和方法。 Runtime相关API02 ...

  • 常用Runtime API

    前言:本文只是分类列举一些常用Runtime API?一些Runtime 常用场景 1. 类 动态创建一个类 注册...

网友评论

      本文标题:Runtime运用:动态跳转到任何一个类

      本文链接:https://www.haomeiwen.com/subject/lsgtsftx.html