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