0

そして、ペン先が "目覚め"たときに、その中のすべてのオブジェクトが "生き生きと来る"のはどうでしょうか?ペン先からオブジェクトを復元する - ちょうど水を加えますか?多分私はIBであなたのUIを設定することの利点について話を読んだことがあります。

私は約10個のUIViewオブジェクトをViewControllerが所有するペン先に配置して実験しています。 UIViewオブジェクトはMyView型で、ViewControllerのそれぞれのプロパティに配線されています。 MyViewはUIViewのサブクラスで、UIImage *画像& NSNumber *値のようないくつかの追加プロパティを持ちます。

ペン先にもある他のUIImageView要素が見えるので、ペン先がはっきりと読み込まれます。しかし、10個のMyViewオブジェクトの1つにプロパティを設定しようとすると、私はできません。デバッガでは、これらのオブジェクトのプロパティはすべて0x0です。

また、私のMyViewクラスのinitWithCoderメソッドは、これらの10個のオブジェクトがスリープから起動したときに起動するので、実行時にいくつかのプロパティを設定できるという印象を受けましたか?

誰もが何が起こっているのか知っている...私はこのためにIBを放棄して幸せだが、私はそれを試してみるだろうと思って...最初self.viewプロパティにアクセスするとき

答えて

2

viewDidLoadは、ビュー内のすべてのオブジェクトが作成されたときに呼び出される最初のメソッドです。 initWithCoderはそれらのいずれかが呼び出される前に呼び出されます。

viewWillAppearはviewDidLoadの後に呼び出され、何かが表示される前に呼び出されます。ビューオブジェクトが作成されるときにviewDidLoadが呼び出されるたびに呼び出されます。

+0

Argh。私はinitWithCoderですべてのコードを持っていました...私は明日viewDidLoadでテストして戻って報告します...違いを認識しませんでした。コーダーがペン先のためのものだと思っていた...それはnewbsのようだった... – Meltemi

+0

コーダーはペン先用ですが、要素が到着する前にセットアップを行うためのものです。自分自身ではあまり重視しないでください。initをオーバーライドして作業するのは当然です。 –

+1

私はセットアップのためのより良い場所を見つけたと思う。 Appleには、UIKitの「追加」ドキュメントを見つけるのが難しいさまざまなカテゴリで、有用なカテゴリ(私がそうであると仮定している)を隠す習慣があります。 awakeFromNib - Interface Builderアーカイブまたはnibファイルからロードされた後に、サービスの受信者を準備します。 – Meltemi

1

UIViewControllersは自分の意見をロードします。コントローラのviewDidLoadメソッドが呼び出されているかどうかを確認してください。

また、ペン先から読み込まれた複数の独立したビューを持つことはお勧めできません。これは主にメモリ使用のためです。

0

ファイル所有者にビューを割り当てた可能性があります。

オープンIB。持っているウィンドウで。 ファイルの所有者 最初のレスポンダー ビュー

「ビュー」オブジェクトを右クリックします。 1つのオプションがある場合は、 「新しい参照用コンセント」が表示されます。これは、ビューをファイル所有者に配線しないことを意味します。 これの横にある小さなアイコンをつかんでファイルの所有者までドラッグするだけです。 ファイルをオーバーすると新しいメニューがポップアップし、「表示」を選択できるようになります

これを保存して現在動作中かどうかを確認してください。

最後に、「ファイルの所有者」がクラスに設定されていることを確認するには、ファイルの所有者を選択してこれを調べるだけです。ドロップダウンの1つでは、クラスを選択することができます。

IBはクールです。あきらめてはいけません... AppleのWWDCに記載されているように、セットアップコードの70%を保存します。

ジョン。

関連する問題