По моему опыту, лучший способ определить контроллер подробного вида:
MyDetailController * dc = [[MyDetailController alloc] initWithMyObject: anObject];
[self.navigationController pushViewController: dc animated: YES];
[dc release];
, где anObject - это часть ваших загруженных данных, которую вы хотите представить в контроллере подробного представления.
Полагаю, ваш контроллер списков является основным в вашем приложении, для которого нужно создать следующие экземпляры:
- (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 (и подобные методы) называется КАЖДЫЙ РАЗ, чтобы представление контроллера представления отображалось на экране.То есть, например, если вы нажмете другой виртуальный канал из подробного vc, а затем выберете, снова будет вызван -viewDidAppear.