用滑动手势在uivewconrollers之间切换

时间:2013-01-25 04:49:16

标签: ios xcode gestures

我正在尝试使用滑动手势(向上)和小动画在4 V.C之间切换,我正在使用xib:

-(IBAction)gotonext:(UISwipeGestureRecognizer *)recognizer{
ibasar *ibas =[[ibasar alloc]initWithNibName:@"ibasar" bundle:nil];


[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];

[self.view addSubview:ibas.view];

[UIView commitAnimations];

  }

问题是,当我从第一个V.C切换到第二个完成时,但当我从第二个切换到第三个时,应用程序停止了!尽管使用相同的代码进行切换!  任何帮助请...提前谢谢

2 个答案:

答案 0 :(得分:0)

首先,如果要进行动画制作,请使用块动画。不是旧的动画方法。

其次,您只是在彼此之上添加子视图。这可能是内存的重点。在动画结束时删除并丢弃旧视图,或者更好的是,使用UINavigation视图控制器来处理所有这些。

答案 1 :(得分:0)

您可以创建CATransition动画。下面是一个示例,说明如何在推出当前视图的同时将第二个视图(从左侧)滑动到屏幕中:

UIView *theParentView = [self.view superview];

CATransition *animation = [CATransition animation];
[animation setDuration:0.3];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

[theParentView addSubview:yourSecondViewController.view];
[self.view removeFromSuperview];

[[theParentView layer] addAnimation:animation forKey:@"MainView"];