There are many different ways to do this, and you must provide additional information about your application.
: :
[UIView beginAnimations:nil context:nil]
[UIView setAnimationDuration:1.5]
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]
[vc1 viewWillDisappear:YES]
[vc2 viewWillAppear:YES]
vc1.view.hidden = YES;
vc2.view.hidden = NO;
[vc1 viewDidDisappear:YES]
[vc2 viewDidAppear:YES]
[UIView commitAnimations]
, / . , / :
[UIView beginAnimations:nil context:nil]
[UIView setAnimationDuration:1.5]
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]
[vc1 viewWillDisappear:YES]
[vc2 viewWillAppear:YES]
[vc1 removeFromSuperview]
[masterController.view addSubview:vc2.view;
[vc1 viewDidDisappear:YES]
[vc2 viewDidAppear:YES]
[UIView commitAnimations]