2009-04-26 5 views
0

View Controllerを実装しましたが、initWithNibFileで非常に基本的な初期化を実行しようとしています... View Controllerオブジェクトの指定された初期化子であるとわかります。initWithNibFileを呼び出すためのトリックですか?

私はコードにブレークポイントを入れようとしましたが、非常に単純なNSLogステートメントも入れました。それにもかかわらず...私はそれが実行されているのを見ていない(と私は/関数内のinitを割り当てしようとしているオブジェクトも割り当てられていない - だから私は約99%のコードを打つしていないことを確認している

私は、何の警告やエラーをクリーンビルドを取得していないんだ。そして、アプリが正常に表示をアップロードし、私が呼び出すことができる私は、このメソッドが呼び出される原因とする他の場所で行う必要がある何か?

ありますButtonClickメソッド私はコード化され、この同じビュー・コントローラに接続されてきました。

任意の提案をいただければ幸いです。

TC

+0

ニブをロードするために使用しているコードを投稿してください – bpapa

答えて

0

私は割り当てロジックをviewDidLoadに移動させてしまい、うまくいきます。

なぜinitWithNibFileが機能していないのか分かりませんが、私は小さな勝利を取るでしょう!

コードbpapaを見ていただきありがとうございます。

+0

initWithNibFileは、直接作成するクラスを作成する場合です。 nibファイルにパックするものはシリアル化されたオブジェクトなので、実行中のアプリケーションではinitWithNibFileは実際には呼び出されません。だから、awakeFromNibやviewDidLoadのような代理人がいるのです。 –

0

おそらくinitWithCoder:が必要です。起動時にSDKがnibファイルから読み取るために使用するのは、これです。

initWithNibFile:は、ほとんどシステムから呼び出されません。通常これを手動で呼びます。この点については、ドキュメントはかなり誤解を招いています。

いずれにしても、 initWithXXXXメソッドの初期化に注意してください。ビューのターゲットとアクションは設定されておらず、まだ接続されていません。 viewDidLoadは、ほとんどの場合、いつもviewControllerセットアップを行うのに適しています。