viewcontrollers 过场动画切换示例(iOS 5)

来源:互联网 发布:ubuntu 安装php环境 编辑:程序博客网 时间:2024/06/05 19:28
- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view from its nib.        firstViewController=[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];    //[self addChildViewController:firstViewController];        secondViewController=[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];    //[self addChildViewController:secondViewController];        thirdViewController=[[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];    [self addChildViewController:thirdViewController];        [self.view addSubview:thirdViewController.view];    [thirdViewController didMoveToParentViewController:self];        currentViewController=thirdViewController;}-(IBAction)onClickbutton:(id)sender{    if ((currentViewController==firstViewController&&[sender tag]==1)||(currentViewController==secondViewController&&[sender tag]==2) ||(currentViewController==thirdViewController&&[sender tag]==3) ) {        return;    }    UIViewController *oldViewController=currentViewController;        [oldViewController willMoveToParentViewController:nil];    switch ([sender tag]) {        case 1:        {            NSLog(@"留言及回复");                    [self addChildViewController:firstViewController];            [self.view addSubview:firstViewController.view];            [self transitionFromViewController:currentViewController toViewController:firstViewController duration:1 options:UIViewAnimationOptionTransitionCurlUp animations:^{            }  completion:^(BOOL finished) {                if (finished) {                                        [oldViewController.view removeFromSuperview];                    [oldViewController removeFromParentViewController];                    [firstViewController didMoveToParentViewController:self];                    currentViewController=firstViewController;                }else{                    currentViewController=oldViewController;                }            }];        }            break;        case 2:        {            NSLog(@"生日提醒");                        [self addChildViewController:secondViewController];            [self.view addSubview:secondViewController.view];            [self transitionFromViewController:currentViewController toViewController:secondViewController duration:1 options:UIViewAnimationOptionTransitionCurlDown animations:^{                            }  completion:^(BOOL finished) {                if (finished) {                                        [oldViewController.view removeFromSuperview];                    [oldViewController removeFromParentViewController];                                        [secondViewController didMoveToParentViewController:self];                    currentViewController=secondViewController;                }else{                    currentViewController=oldViewController;                }            }];        }            break;        case 3:        {            NSLog(@"好友申请");             [self addChildViewController:thirdViewController];            [self.view addSubview:thirdViewController.view];            [self transitionFromViewController:currentViewController toViewController:thirdViewController duration:1 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{                            }  completion:^(BOOL finished) {                if (finished) {                                        [oldViewController.view removeFromSuperview];                    [oldViewController removeFromParentViewController];                                                           [thirdViewController didMoveToParentViewController:self];                    currentViewController=thirdViewController;                }else{                    currentViewController=oldViewController;                }            }];        }            break;        default:            break;    }}

0 0