私が現在取り組んでいるアプリケーションでは、一連のデータに対して 2 つの画面がある場合があります。1 つはリストで、もう 1 つはマップです。各画面には、独自のビュー コントローラーがあります。デフォルトの画面はリスト ビューであるため、View Controller が最初に読み込まれます。ただし、マップ画面がまだ表示されていなくても、他のマップ画面ビュー コントローラーも読み込まれ、セットアップされます (リスト画面ビュー コントローラーが使用する地理的なマップ関連データをカプセル化するため)。
ただし、ユーザーがその画面に切り替えるまで、マップ画面ビューコントローラーのペン先とビューをロードして初期化したくありません。
view
以下のコードのように、マップ画面のビュー コントローラー内でプロパティ アクセサーをオーバーライドし、nib を遅延ロード/インスタンス化することに問題はありますか? (このview
プロパティは、マップ画面が表示される直前、マップ画面ビュー コントローラーのviewDidLoad
メソッドが呼び出される直前までアクセスされません。) これがうまく機能することをテストしましたが、この方法で実行されるのを見たことがありません。
- (UIView *)view {
if (!_view) {
UINib *nib = [UINib nibWithNibName:@"MyNibName" bundle:nil];
[nib instantiateWithOwner:self options:nil];
}
return _view;
}