0

コントローラーの init メソッド内にボタンを隠そうとしています。しかし、それは機能していません。コントローラーからイメージにアクセスするためのアウトレットを作成しました。画像が非表示にならない理由はわかりませんが、viewdidload メソッド内で実行できます。ビューがまだロードされていないためですか?

4

3 に答える 3

2

はい、viewdidload が呼び出されたときにビューが読み込まれます。そのため、既存の UI への変更はビューで呼び出す必要があります。読み込みが行われるか、ビューが表示されます。

于 2012-05-30T09:35:37.767 に答える
1

話している UI コンポーネントはすべて、作成している UIViewController が所有する UIView のサブビューです。しかし、その UIView とそのサブビューは、init メソッドが呼び出された時点では実際には作成されていないため、そこで変更することはできません。

viewDidLoadビューが作成された後、ビューが表示される前に一度だけ実行する必要があるコードに適した場所です。

viewWillAppear:viewDidAppear:ビューが再び表示されるか、表示されるたびに実行されます。

于 2012-05-30T09:40:02.853 に答える
0

loadView実際には、メッセージがコントローラーに送信されると、ビュー階層全体がロードされます。このメッセージは、コントローラーのビューに初めてアクセスしたときにも自動的に送信されます。initオブジェクトがまだxib/から「凍結解除」されていないため、ボタンへのメッセージがメソッドで破棄されるのはそのためstoryboardです。はい、ビューのカスタマイズを行う適切な場所はviewDidLoadデリゲート メソッド内です。

PS。また...初期化時にボタンを非表示にしたい場合は、 /でそのhiddenプロパティをチェックしてみませんか?xibstoryboard

于 2012-05-30T09:51:01.717 に答える