コントローラーの init メソッド内にボタンを隠そうとしています。しかし、それは機能していません。コントローラーからイメージにアクセスするためのアウトレットを作成しました。画像が非表示にならない理由はわかりませんが、viewdidload メソッド内で実行できます。ビューがまだロードされていないためですか?
3 に答える
はい、viewdidload が呼び出されたときにビューが読み込まれます。そのため、既存の UI への変更はビューで呼び出す必要があります。読み込みが行われるか、ビューが表示されます。
話している UI コンポーネントはすべて、作成している UIViewController が所有する UIView のサブビューです。しかし、その UIView とそのサブビューは、init メソッドが呼び出された時点では実際には作成されていないため、そこで変更することはできません。
viewDidLoad
ビューが作成された後、ビューが表示される前に一度だけ実行する必要があるコードに適した場所です。
viewWillAppear:
viewDidAppear:
ビューが再び表示されるか、表示されるたびに実行されます。
loadView
実際には、メッセージがコントローラーに送信されると、ビュー階層全体がロードされます。このメッセージは、コントローラーのビューに初めてアクセスしたときにも自動的に送信されます。init
オブジェクトがまだxib
/から「凍結解除」されていないため、ボタンへのメッセージがメソッドで破棄されるのはそのためstoryboard
です。はい、ビューのカスタマイズを行う適切な場所はviewDidLoad
デリゲート メソッド内です。
PS。また...初期化時にボタンを非表示にしたい場合は、 /でそのhidden
プロパティをチェックしてみませんか?xib
storyboard