Взгляните на Apple View Руководство по программированию контроллера для iOS . Я предполагаю, что самым простым способом было бы использовать модальное представление с UIModalTransitionStyleFlipHorizontal
, установленным в качестве стиля перехода (см. «Представление контроллера вида и выбор стиля перехода» в руководстве, которое я опубликовал).
Учебники:
- http://timneill.net/2010/09/modal-view-controller-example-part-1/
- http://timneill.net/2010/11/modal-view-controller-example-part-2/
EDIT
Полагаю, вы используете UINavigationController
, так что вот пример ViewController, который сохраняет панель навигации видимой. Просто поместите второй вид в контроллер вида и скройте его. Чем реализовать метод (я использовал IBAction, который я подключаю к кнопке с помощью InterfaceBuilder), который переключается между этими представлениями:
ViewController.h:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
UIView *backSideView;
}
- (IBAction)switchViews:(id)sender;
@end
ViewController.h:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
backSideView = [[UIView alloc] initWithFrame:[self view].bounds];
[backSideView setBackgroundColor:[UIColor greenColor]];
// ... put stuff you want inside backSideView ...
[backSideView setHidden:YES];
[[self view] addSubview:backSideView];
}
- (void)viewDidUnload
{
[super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (IBAction)switchViews:(id)sender
{
if ( [backSideView isHidden] )
{
[UIView transitionWithView:self.view
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{ [backSideView setHidden:NO]; }
completion:^(BOOL finished){ [self setTitle:@"BackView"]; }
];
}
else
{
[UIView transitionWithView:self.view
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^{ [backSideView setHidden:YES]; }
completion:^(BOOL finished){ [self setTitle:@"FrontView"]; }
];
}
}
@end