1

IBOutlet を正しく使用していないか、NIB ファイルの動作に関するその他の微妙な問題が原因で問題が発生している可能性があります。

View オブジェクトと Controller オブジェクトがあります。どちらもNIBにあります。コントローラの init は、NIB がロードされ、View が「awakeFromNib」コールバックで初期化されるときにも呼び出されます。これら 2 つのオブジェクトを接続する方法が必要です。具体的には、「ビュー」オブジェクトがコントローラーで関数を呼び出せるようにする必要があります。

オンラインのドキュメントに基づいて、これらを接続する方法は、View で IBOutlet を定義し、Interface Builder で Controller に接続することです。だから私は

IBOutlet Controller* _controller;

View インターフェイスで、View から Controller への接続を作成し、_controller アウトレットを Controller に割り当てることで、Interface Builder の Controller オブジェクトにグラフィカルに接続します (Interface Builder の青い Generic Object ボックス)。

ただし、実行時には、_controller は常に _nil です。コントローラーの init が実際に呼び出されたことを確認しました。

これについて私が見逃している明らかなものはありますか?これら2つを接続する簡単な方法はありますか?どちらもNIBによって作成されているため、両方へのポインターを持つ共通のオブジェクトはありません。

4

1 に答える 1

0

IBOutletインインスタにアクセスしてみてくださいviewDidLoad

awakeFromNibが呼び出されたときに、すべてIBOutletsが読み込まれるわけではありません (ドキュメントではそれが暗示されているように見えますが)。

于 2009-05-12T22:00:38.173 に答える