、詳細ビューコントローラをistantiateする最良の方法は次のとおりです。anObjectはあなたが詳細ビューコントローラに提示したいあなたのダウンロードしたデータの一部である
MyDetailController * dc = [[MyDetailController alloc] initWithMyObject: anObject];
[self.navigationController pushViewController: dc animated: YES];
[dc release];
。
私はあなたのリストコントローラは、次のようにインスタンス化する必要がありますあなたのアプリの主なものであると仮定します。
- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {
_baseWindow = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
_listVC = [MyListController new];
[_baseWindow addSubview: _listVC.view];
[_baseWindow makeKeyAndVisible];
return YES;
}
そしてリリース:
- (void) dealloc {
[_listVC release]; _listVC = nil;
[_baseWindow release]; _baseWindow = nil;
[super dealloc];
}
は-viewDidLoadが-loadView後に呼び出されることに注意してください誰かがビューコントローラの-viewプロパティにアクセスしようとしたときに呼び出されます。
したがって、-viewDidLoadでビューを準備し、-viewWillAppearまたは-viewDidAppearでいくつかの追加タスクを実行することができます。 -viewWillAppear(および同様のメソッド)は、ビューコントローラのビューが画面に表示される、EVERY TIMEと呼ばれます。つまり、たとえば、詳細VCから別のVCをプッシュしてポップすると、-viewDidAppearが再び呼び出されます。
viewDidLoadの場合(ユーザーがLC&DCの間を前後にナビゲートするとき)、毎回呼び出されるviewDidLoadか、時間差がある場合はありますか? – testndtv