super
UIViewController のビュー イベント (viewWillAppear、viewDidAppear など) の実装で呼び出さないとどうなりますか?
以前にこれを行うのを忘れていたようで、悪影響があったかどうかは不明です.
super
UIViewController のビュー イベント (viewWillAppear、viewDidAppear など) の実装で呼び出さないとどうなりますか?
以前にこれを行うのを忘れていたようで、悪影響があったかどうかは不明です.
独自のView Controllerクラスの1つをサブクラス化する場合、これらのタイプのメソッドのいずれかを呼び出したいと思うでしょうsuper
。そうしないと、独自の基本クラスのメソッドが呼び出されません。
また、基本クラス自体super
でコードを実行するためにトップレベルのビュー コントローラー クラスを呼び出す必要があるかどうかという問題もあります。UIViewController リファレンスUIViewController
では、 、、、およびの特定のメソッドについて、呼び出す必要があることが文書化されているようです。super
viewWillAppear:
viewDidAppear
viewWillDisappear:
viewDidDisappear
このメソッドをオーバーライドする場合
super
は、実装のある時点で呼び出す必要があります。
ただし、そうしないとどうなるかはわかりません。
どうやら、iOS フレームワークの基本ビュー コントローラー クラスのこれらのメソッドに何かが実装されているようです。または、少なくとも、Apple はこれらのメソッドに何かを実装するオプションを留保しています。それらは抽象メソッドではなく仮想メソッドであると言えます。
UIViewController デリゲートをどこからでもサブクラス化した場合 (そして、カスタマイズされたビュー コントローラーを作成する際に常に少なくとも 1 回は UIViewController をサブクラス化する場合)、派生元のサブクラスのデリゲート メソッドは呼び出されません。