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

该示例展示了如何在iOS 5应用程序中使用viewcontrollers进行动画过渡。通过`transitionFromViewController`方法,实现了curl up、curl down和cross dissolve三种不同的动画效果,实现从FirstViewController、SecondViewController到ThirdViewController的平滑切换。
- (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;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值