通过在变量中动态存储[controller class]来创建类的对象

时间:2013-01-24 10:05:10

标签: iphone ios objective-c ios5 ios6

UINavigationController *homeNavController;
Class class_ = [YBHomePageViewControlleriPad class];
if(iPhone){
    class_ = [YBHomePageViewControlleriPhone class];
}
class_ *homeController = [[class_ alloc] initWithNibName:NSStringFromClass(class_) bundle:nil];
homeNavController = [[UINavigationController alloc] initWithRootViewController:homeController];

显示 - “使用未声明的标识符homeController”。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

假设你的类都是UIViewController的实例,只需将homeController声明为UIViewController。

答案 1 :(得分:0)

您无法将className分配给字符串并形成该类型的对象。

你需要使用一些先进和困难的方式来执行:

  1. Obj-C运行时。

  2. “反射”它可以对类和对象进行运行时内省。

  3. IBOutletCollection。