iOSアプリ開発の逆引き辞典

iPhone/iPadで使えるアプリ開発のTipsをまとめてみました

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

例えば、plistなどで@"HogeViewController"という文字列で定義されたクラス名から、インスタンスを生成したい場合にNSClassFromString関数を使用します。

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

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];