У меня была функция выхода из приложения, которое я недавно сделал.
У меня была иерархия:
"BaseUITableViewController
^
|
"Any subclass of UITAbleView Controller used in project."
у всех этих подклассов была кнопка «Выход», а метод вызова службы выхода был написан в базовом классе.
как только ответ на запрос на выход из системы действителен и сеанс завершен, я вызываю следующий метод (который вас интересует в отличие от приведенного выше текста:))
-(void)gotoMainScreenOnLogout
{
self.navigationController.navigationBarHidden = YES;//to make the previous view invisible
self.navigationController.toolbarHidden=YES; //27 JUNE UPDATE
[self.view removeFromSuperview]; //27 JUNE UPDATE
// MYAPPViewController *homeViewController = [[MYAPPViewController alloc]initWithNibName:@"MYAPPViewController" bundle:nil];
MYAPP_LoginUIVIewController *homeViewController =[[MYAPP_LoginUIVIewController alloc] initWithNibName:@"MYAPP_LoginUIVIewController" bundle:nil];
UINavigationController *nc = [[UINavigationController alloc]initWithRootViewController:homeViewController ];
[nc.navigationBar setBarStyle:UIBarStyleBlackOpaque];
//
UIWindow *MYAPP_window = [[[UIApplication sharedApplication] windows]objectAtIndex:0];
CATransition *transition = [CATransition animation];
transition.duration = 0.8;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFade;
transition.delegate = self;
//...
[MYAPP_window.layer addAnimation:transition forKey:nil];
[MYAPP_window removeAllSubviews]; // not needed anymore
[MYAPP_window addSubview:nc.view];
[homeViewController release];
}
надеюсь, это поможет.