1
FluidInfo *fluidInfo = [[FluidInfo alloc]init];
UIView *info = [[[NSBundle mainBundle] loadNibNamed:@"FluidInfoSheet" owner:fluidInfo options:nil] objectAtIndex:0];

[self createFormulaPopup:info];

を含む nib ファイルがありUIViewます。そして、「 . 」UIViewという名前のサブクラスがあります。関数 ' 'を使用して、FluidInfoこれUiViewをポップアップとして表示します。viewControllercreateFormulaPopup

UIViewのサブクラスを作成しましたFluidInfo。アウトレットとアクションを作成すると、それらはすべて正しく機能します。

問題は、私のinit関数UIViewが予期せず機能していることです。何かをログに記録すると、ポップアップと同時に表示されます..しかし、ビューの背景色のようなものを設定すると、消えてしまうようです。インターフェイスビルダーで設定すると、固執します。色の変更をアクションに追加するUIViewと、それも機能します。しかし、ビューが初期化されると、プログラムで行ったすべてのことを元に戻すようです。

4

2 に答える 2

0

コードで FluidInfo *fluidInfo をビュー コントローラの代わりに渡します。

 [[[NSBundle mainBundle] loadNibNamed:@"FluidInfoSheet" owner:fluidInfo options:nil]objectAtIndex:0];

このリンクを参照してください https://developer.apple.com/library/ios/documentation/uikit/reference/NSBundle_UIKitAdditions/Introduction/Introduction.html

その場合、ここでファイル所有者になる所有者を渡す必要があるため、所有者をビューサブクラスとして渡す必要があるため、self (ビューコントローラー) を渡すと機能しない可能性があるため、アプリケーションでファイル所有者を見つけることができます。

  [[[NSBundle mainBundle] loadNibNamed:@"FluidInfoSheet" owner:self options:nil]objectAtIndex:0];

スタックオーバーフローのこのリンクを参照すると、ファイル所有者の非常に良い説明が得られます。objective-c / cocoa Nibで「ファイルの所有者」を最もよく説明しているのは何ですか?

于 2013-09-11T06:42:17.747 に答える