如果界面切换画面的时候,没有参数传递。我们用系统的切换,
如果要传递参数,那么我们就需要自定义切换方法,找到那个要切换的viewController 然后把需要的信息传送过去,
代码如下:
-(void)pushViewController:(BaseViewController *)_viewControllerwithData:(ActivityData *)_actityData animate:(BOOL)_animate{
if(_actityData) {
_viewController.activityData=_actityData;
}
[self.navigationController pushViewController:_viewControlleranimated:_animate];
}
-(void)popViewControllerWithDat a:(ActivityData *)_actityDataanimate:(BOOL)_animate
{
NSArray*viewControllerArr = [self.navigationControllerviewControllers];
//returnwhen the controller is root view controller
if([viewControllerArr count]<2)
{
return;
}
BaseViewController *preBVC=[viewControllerArr objectAtIndex:[viewControllerArr indexOfObject:self]-1];
if ([preBVCisKindOfClass:[BaseViewControllerclass]]&&_actityData) {
preBVC.activityData = _actityData;
//[preBVCsetTempActivityData:_actityData];
}
_state =2;//设置当前viewController的状态;_state 表示当前Viewcontroller的状态,// 0 唤起状态,1 休眠状态 2 准备销毁状态
[self.navigationController popToViewController:preBVCanimated:_animate];
}
当然我们也可以通过这个思路来更改 切换的动画:
代码如下:
- (void)pushViewController:(UIViewController*)controller
animatedWithTransition: (UIViewAnimationTransitio n)transition{
[self pushViewController:controller animated:NO];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationDelegate:self];
[UIViewsetAnimationDidStopSelec tor:@selector(pushAnimationDidStop)];
[UIView setAnimationTransition:transition forView:self.viewcache:YES];
[UIView commitAnimations];
}
-(UIViewController*)popViewControllerAnimate dWithTransition:(UIViewAnimationTransitio n)transition{
UIViewController* poppedController = [selfpopViewControllerAnimate d:NO];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:TT_FLIP_TRANSITION_DURATION];
[UIView setAnimationDelegate:self];
[UIViewsetAnimationDidStopSelec tor:@selector(pushAnimationDidStop)];
[UIView setAnimationTransition:transition forView:self.viewcache:NO];
[UIView commitAnimations];
return poppedController;
}
如果要传递参数,那么我们就需要自定义切换方法,找到那个要切换的viewController 然后把需要的信息传送过去,
代码如下:
-(void)pushViewController:(BaseViewController *)_viewControllerwithData:(ActivityData *)_actityData animate:(BOOL)_animate{
}
-(void)popViewControllerWithDat
{
}
当然我们也可以通过这个思路来更改 切换的动画:
代码如下:
- (void)pushViewController:(UIViewController*)controller
[self pushViewController:controller animated:NO];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationDelegate:self];
[UIViewsetAnimationDidStopSelec
[UIView setAnimationTransition:transition forView:self.viewcache:YES];
[UIView commitAnimations];
}
-(UIViewController*)popViewControllerAnimate
UIViewController* poppedController = [selfpopViewControllerAnimate
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:TT_FLIP_TRANSITION_DURATION];
[UIView setAnimationDelegate:self];
[UIViewsetAnimationDidStopSelec
[UIView setAnimationTransition:transition forView:self.viewcache:NO];
[UIView commitAnimations];
return poppedController;
}