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 に答える