0

superUIViewController のビュー イベント (viewWillAppear、viewDidAppear など) の実装で呼び出さないとどうなりますか?

以前にこれを行うのを忘れていたようで、悪影響があったかどうかは不明です.

4

2 に答える 2

1

独自のView Controllerクラスの1つをサブクラス化する場合、これらのタイプのメソッドのいずれかを呼び出したいと思うでしょうsuper。そうしないと、独自の基本クラスのメソッドが呼び出されません。

また、基本クラス自体superでコードを実行するためにトップレベルのビュー コントローラー クラスを呼び出す必要があるかどうかという問題もあります。UIViewController リファレンスUIViewControllerでは、 、、、およびの特定のメソッドについて、呼び出す必要があることが文書化されているようです。superviewWillAppear:viewDidAppearviewWillDisappear:viewDidDisappear

このメソッドをオーバーライドする場合superは、実装のある時点で呼び出す必要があります。

ただし、そうしないとどうなるかはわかりません。

どうやら、iOS フレームワークの基本ビュー コントローラー クラスのこれらのメソッドに何かが実装されているようです。または、少なくとも、Apple はこれらのメソッドに何かを実装するオプションを留保しています。それらは抽象メソッドではなく仮想メソッドであると言えます。

于 2013-04-28T22:13:38.890 に答える
1

UIViewController デリゲートをどこからでもサブクラス化した場合 (そして、カスタマイズされたビュー コントローラーを作成する際に常に少なくとも 1 回は UIViewController をサブクラス化する場合)、派生元のサブクラスのデリゲート メソッドは呼び出されません。

于 2013-04-28T21:58:51.413 に答える