Я на самом деле решил эту проблему, поиграв с UIView Animations.
-(void)slideInView:(UIView*)newView toView:(UIView*)oldView {
/* Sets the view outside the right edge and adds it to mainView */
newView.bounds = mainView.bounds;
newView.frame = CGRectMake(newView.frame.origin.x + 784, newView.frame.origin.y, newView.frame.size.width, newView.frame.size.height);
[mainView addSubview:newView];
/* Begin transition */
[UIView beginAnimations:@"Slide Left" context:oldView];
[UIView setAnimationDelegate:self];
[UIView setAnimationDelay:0.0f];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDidStopSelector:@selector(slideInCompleted:finished:context:)];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
newView.frame = CGRectMake(0,0, newView.frame.size.width, newView.frame.size.height);
oldView.frame = CGRectMake(oldView.frame.origin.x - 784, oldView.frame.origin.y, oldView.frame.size.width, oldView.frame.size.height);
[UIView commitAnimations];
}
-(void)slideInCompleted:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
UIView *view = (UIView*)context;
[view removeFromSuperview];
}
и использовав его
menuController = [[MenuViewController alloc] init];
[self slideOutView:menuController.view toView:loginController.view];
[oldController release];
Помните, что вы выбрали UIViewController, который вам нужно выпустить, когда высделали это!В примере я закончил с loginController и выпустил его.