0

xib ファイルからaUIButtonに aを追加したいと思います。UIView

私のxibでは、UIViewインターフェイスビルダーで「コンテンツ」という名前のアウトレットを宣言しています。生成されたコードは次のとおりです。

@property (weak, nonatomic) IBOutlet UIView *content;

ボタンを追加したいのですが、これのコードは次のとおりです。

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(0, 8, 141.0, 56.0);
[button setBackgroundImage:[UIImage imageNamed:@"TAB_NORMAL"] 
                                      forState:UIControlStateNormal];
button.frame = CGRectMake(0, 8, 56.0, 141.0);
[self.content addSubview:button];

このコードを-viewDidLoadメソッドに入れると動作しますが、後で呼び出す関数に入れるとボタンが表示されません。

何が原因でしょうか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

UIViewcontentがトップ レベルのアイテムである場合、つまり、メイン ビューに含まれていない場合は、strong. weak含まれているビューがそれらへの強い参照を保持するため、トップレベルではないアイテムのみが を使用できます。また、それがプライマリビューにすぐに追加され、それへの強い参照が保持されていると仮定しcontentます(viewDidLoadでは、ARCがnil'ed outになる前に発生しましたcontent

何らかの理由でプロパティを に変更してstrongも問題が解決しない場合は、必ず NSLog を追加 (またはアサート) して、contentnil 以外であることを確認してください。

于 2013-06-25T14:30:35.950 に答える