ページ 11

InterfaceBuilderとloadviewの混在

Posted: 2010年8月29日(日) 13:48
by まる
言語:objective-c

iphoneアプリの制作をしているのですが、
InterfaceBuilderでImageViewや、ボタン配置し、
ViewController.mのloadviewで背景色の設定するように
役割分担させてつくりたいとき、
loadviewの背景色で画面が全部うめられて
IBで作成したボタンなどがみえなくなります。

これを回避するにはどのようにすればいいでしょうか?
loadviewの背景色設定は一般的なコードです。

- (void)loadView
{

CGRect frame = [[UIScreen mainScreen] bounds];

//親Viewに配置された時の位置と大きさ情報付きでViewControllerの持つViewを初期化
self.view = [[[UIView alloc] initWithFrame:frame] autorelease];

self.view.backgroundColor = [UIColor blueColo[/url];
}

Re:InterfaceBuilderとloadviewの混在

Posted: 2010年8月29日(日) 21:24
by Justy
>ViewController.mのloadviewで背景色の設定するように
>役割分担させてつくりたいとき、
 loadviewは nibを使わない時に使うものですので、loadviewは全て削除し viewDidLoadの方を
使って下さい。

Re:InterfaceBuilderとloadviewの混在

Posted: 2010年8月30日(月) 01:07
by まる
viewDidLoadに同じコードを書いてもIBで作成したボタン等かくれちゃいますね。

なにがわるいんだろ。。。

Re:InterfaceBuilderとloadviewの混在

Posted: 2010年8月30日(月) 01:19
by Justy
 self.viewを上書きしてしまっているのが原因なんじゃないかなと。
[color=#d0d0ff" face="monospace]
[super viewDidLoad];
self.view.backgroundColor = [UIColor blueColo[/url];
[/color]

だけ書いたらどうなりますか?

Re:InterfaceBuilderとloadviewの混在

Posted: 2010年8月30日(月) 08:11
by まる
Justyさんのご指摘通り修正するといけました。

ありがとうございました!