Вот примерный план того, как это можно сделать.
Предположим, у вас есть свойства в AppDelegate, которые называются viewController1
и viewController2
(это должно быть nonatomic, retain
, чтобы упростить управление памятью).
Если вы хотите переключиться с viewController1
на viewController2
, вам нужно удалить, чтобы сделать следующее
// Remove the old view
[self.viewController1.view removeFromSuperView];
// Release it's controller (just to economize on memory)
self.viewController1.view = nil;
if(self.viewController2 == nil)
{
// Load the new controller from it's NIB/XIB
ViewController2* vc2 = [[ViewController2 alloc]
initWithNibName:@"ViewController2"
bundle:nil];
// Assign it to property & release to keep memory management clean
self.viewController2 = vc2;
[vc2 release];
}
// Add the new view controller to the window
[self.window addSubview:vc2];
Один из самых простых способов сообщить AppDelegate о переключении представлений - это использовать центр уведомлений.
Поскольку вы сохраняете контроллеры представления в свойствах, не забудьте освободить их в вашем dealloc
.
Надеюсь, это поможет вам.