0

背景画像、ボタン、および前面に移動する必要があるフルスクリーン (影) をカバーする別の画像を含むビューがある nib ファイルがあります。ビューでは、子ビューを作成しています。それらを作成して追加した後[self addView]、影の画像を前面に移動する必要があります。

私は現在、タグ属性を使用してそのビューを見つけていますが、Interface Builder に追加したサブビューを何らかの名前で識別することにより、おそらくより良い方法があると考えています。

サブビューをその親に接続するために IBOutlet を追加しようとしましたが、うまくいきませんでした (サブビューはすでに何らかの方法でその親に接続されているため、意味がありませんでした)。

4

4 に答える 4

2

このIBOutlets方法は機能するはずであり、おそらくそれが最善の方法です。.h ファイルでそれらを宣言した後、Interface Builder で適切な接続を作成したことを確認してください。

于 2009-03-20T20:25:33.650 に答える
1

iPhone は、View Controller の遅延ロードを行います。Kendall が指定したように、nib が initWithCoder またはそのための init メソッドにロードされていない可能性があります。

viewDidLoad は、ビューが表示される前にアクセスしたい場合、nib から何かにアクセスするのに適した場所です。

それが役立つことを願っています。

于 2009-03-21T08:20:30.827 に答える
0

タグの使用は、viewWithTag: メソッドを使用している限り、特定のビューを見つけるための完全に有効な方法です。すでにタグを使用している場合は、viewWithTag: を呼び出すのが気に入らない場合を除き、IBOutlets に変更する必要はありません。

于 2009-03-20T21:53:04.377 に答える
0

どの時点でサブビューにアクセスしようとしていますか? ViewController の init 内で試行すると、IBOutlets は nil になります。それらで取得できる最初のメソッドは、おそらく viewDidLoad です。

このようにするのが理にかなっている理由は、IBOutlets が、既に他の何かのサブビューであっても、あるコンポーネントへの直接のポインターに過ぎないからです。多くの狩猟を節約するだけです。

于 2009-03-20T20:56:19.537 に答える