xibを使わない方法に改造したり

 しばらくブログの更新が滞ってました。(汗)
 とある理由でxibを使わない方法を行う事になり、やってみたコトのまとめを書く事にします。


 いくつかやり方を探したのですが、基本はこのサイトが良さそうです。


Interface Builder を使わない iPhone アプリを作る手順


 xibを使わないようにしたのは、Xcode 3.2.4のOpenGLテンプレートから作ったゲームです。
 他のテンプレートの方は読み替えてくださね。


 さて、Interface Builder を使わない iPhone アプリを作る手順のテーブルビューを作る前までは大体同じです。

@synthesize window; だけでなく、@synthesize viewController; も同じように削除して問題なしです。


 さて、windowとviewをコードで作らないといけません。
 Interface Builder を使わない iPhone アプリを作る手順では、windowを作るだけでしたので、viewを追加しないといけません。
 ちょっと手間取りました。
 で、出来たコードが下のものです。

// appnameAppDelegate.h"

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    viewController = [[appnameViewController alloc] init];
	viewController.view = [[EAGLView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
	[viewController awakeFromNib]; // 初期化
	[window addSubview:viewController.view];
    [window makeKeyAndVisible];
}

 自前でviewを作ったので、viewDidLoadには回ってきません。当たり前ですね。
 もし、viewDidLoad に何かの初期化を書いていたら、あるいは、書く予定があったら
viewController の awakeFromNibメソッドに書いておきます。
※コメントにも書きましたけど、awakeFromNibメソッドは自前で呼び出さないとダメですね。xibから呼び出されるメソッドでした。

 これで動くはずです。


 あ、iAdの初期設定なども、awakeFromNib に書いておくと動きました。