しょぼしょぼプログラマ雑記

自分のための備忘録。 開発記録など掲載してます。 質問・ご意見・ご感想等はTwitter ( https://twitter.com/yun_hokuto ) までお気軽にどうぞ。

Storyboardで作ったControllerをインスタンス化する方法

内容はタイトルの通りです。

様々なブログなどを拝見しましたが、直接インスタンス化&設定する方法はありましたが、Storyboardから作成する方法が無かったので記述しておきます。

 

(1)UIViewControllerを作成する。(名前と種類は任意、今回はSecondViewController)

(2)StorybardにViewControllerを作成(D&D)する。

(3)作成したViewControllerの「Custom Class」に(1)で作成したものを設定する。

f:id:yun_hokuto:20120816132026p:plain

(4)さらに「View Controller」にある「Identifier」に(3)と同じ内容を設定する。

f:id:yun_hokuto:20120816132045p:plain

 

Storyboardの設定はこれで終了です。

あとは呼び出したいControllerで(1)で作成したファイルを#importします。

#import "SecondViewController.h"

実行ファイル内でインスタンス化させます。

 SecondViewController *secondViewController = [self.storyboardinstantiateViewControllerWithIdentifier:@"SecondViewController"];

 

これでSecondViewControllerのインスタンスが生成されました。

あとは通常のインスタンス化させたものと同様に操作・制御できます。

Storyboardから作ることで、直感的な作成が可能になるので、かなり取っ付きやすいかと思います。

また、Propertyの追加なども容易なので、導入にはよろしいかと思いますが、これには欠点があります。

 

それは、「画面数を多くするとStoryboardがとてつもなく重くなる」ということです。

 

GUIなのでしょうがないとは思いますが、このやり方は「小規模 or Xcode導入」にしたほうが良いと思います。