iOS 运行时

1.点击每一个cell都要跳转到一个控制器,swich会很麻烦,那么可以用运行时来进行跳转。

a. 定义一个数组用来存放控制器的名字

- (NSArray *)controllerArr{
    if (_controllerArr == nil) {
        _controllerArr = @[@"View1Controller",@"View2Controller",@"View3Controller"];
    }
    return _controllerArr;
}

b. 在点击cell时进行动态加载控制器

id controller = [[NSClassFromString(self.controllerArr[indexPath.row]) alloc]init];
[self.navigationController pushViewController:controller animated:YES];

优点:

弱化连接,因此并不会把没有的Framework也link到程序中。

不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。

注意:也就是说可以不用导入控制器的头文件哦。。。。

原文地址:https://www.cnblogs.com/yyzanll/p/4767001.html