Убедитесь, что вы объявляете IBOutlets для двух представлений в вашем контроллере представлений. Я предполагаю, что в вашей xib у вас есть «контейнерное представление», занимающее весь экран, и два представления того же размера, которые вы добавляете в этот contatiner ( по одному на каждую сторону вашего «сальто»):
//Inside your .h:
IBOutlet UIView *firstView;
IBOutlet UIView *secondView;
Убедитесь, что при начальной загрузке у вас отображается первый вид:
-(void) viewDidLoad {
NSAssert(firstView && seconView, @"Whoops: Are first View and Second View Wired in IB?");
[self.view addSubview: firstView]; //Lets make sure that the first view is shown
[secondView removeFromSuperview]; //Lets make sure that the second View is not shown at first
}
Затем вы можете подключить такую кнопку, убедитесь, что кнопка подключена к этому методу в IB:
-(IBAction) flipButtonPressed:(id) sender {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
if ([firstView superview]) {
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
[firstView removeFromSuperview];
[self.view addSubview:secondView];
}
else if ([secondView superview]) {
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
[secondView removeFromSuperview];
[self.view addSubview:firstView];
}
[UIView commitAnimations];
}