0

我正在尝试加载 UIViewController,但直到运行时才知道类型。

所以我有一些不同的 UIViewControllers,每个都有自己的 .xib,并且使用以下代码,正确显示了 .xib,但从未创建 UIViewController,因为它是 UIViewController 的子级,而不是完全 UIViewController:

UIViewController *vc = [[UIViewController alloc] initWithNibName:[[self component] xibName] bundle:nil];
[self.navigationController pushViewController:vc animated:YES];

例如,在这种特殊情况下它可以正常工作,但显然不适用于其余情况:

Controller1 *vc = [[Controller1 alloc] initWithNibName:[[self component] xibName] bundle:nil];
[self.navigationController pushViewController:vc animated:YES];

我该如何解决?谢谢!

4

1 回答 1

1

您可以将控制器类名称放在 NSSTring 中并像这样创建对象

UIViewController *vc=[[NSClassFromString(ControllerclassName) alloc] init];
[self.navigationController pushViewController:vc animated:YES];

于 2012-08-03T10:15:37.203 回答