1

この質問は、ランタイム オプションに基づいてさまざまなビュー コントローラーを動的に初期化することに関連しています。基本的に、アプリが起動すると、Web サービスは XML/JSON の一部を送信して、ユーザー設定などを定義します。

これらの変数に基づいて、次にどのView Controllerをユーザーに表示するかを決定する必要があります。したがって、特定の質問 (どの機能をオン/オフにするかなど) を尋ねるクラスがあり、これに基づいてクラスを返すか、クラスを初期化できる必要があります。各View ControllerにすべてのView Controllerヘッダーをインポートしたくないので、次のような方法を使用してクラスを初期化するにはどうすればよいですか。

 [[self nextClassManager] getNextClass];

ありがとう

4

1 に答える 1

0

コントローラークラス名に従って、サーバーコマンドからビューコントローラーを開くために同様のものを使用します。

- (void)openViewController:(NSString *)theControllerClassName {
    Class theControllerClass = NSClassFromString(theControllerClassName);
    if (theControllerClass && [theControllerClass isSubclassOfClass:[UIViewController class]]) {
        UIViewController* controller = [[theControllerClass performSelector:@selector(alloc)] init];

        UINavigationController *nav = (UINavigationController *)self.tabBarController.selectedViewController;
        [nav pushViewController:controller animated:YES];
        [controller release];
    }
}
于 2013-07-15T11:28:49.723 に答える