酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

iOSで文字列のクラス名から動的にインスタンスを生成させる

本記事は「文字列のクラス名からインスタンスを動的に生成させる - iOSアプリ開発の逆引き辞典」に転記しました。


例えばplistで定義した@"HogeViewController"というNSString型のクラス名から、インスタンスを生成したい場合にNSClassFromString関数を使用します。

下記のサンプルコードでは、文字列から生成したViewControllerクラスを使用して画面遷移を行います。

Class vcClass = NSClassFromString(className);
if (vcClass == nil) {
    return; // クラス名が取得出来なかった場合は処理しない
}
        
// 文字列(ViewControllerのクラス名)からインスタンスを生成する
id viewController = [[vcClass alloc] initWithNibName:className bundle:nil];

// 作成したViewControllerインスタンスを使用してドリルダウンさせる
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];