IOS视图切换(ios4)

效果图如下

 

 

1. 这个页面由三个控制器实现,一个ToolBar控制器,两个界面颜色控制器。两个界面颜色控制器放在ToolBar控制器中托管。ToolBar控制器交由项目默认控制器AppDelegate托管。

2. 页面实现

a) 主界面:把蓝色界面首先加载到了主界面当中。主要在ToolBar控制器当中添加实现。代码如下:

3. SwitcherViewController.m文件

4. 

5. - (void)viewDidLoad

6. {

7.     

8.     BlueViewController *bvc = [ [BlueViewController alloc] initWithNibName:@"BlueViewController" bundle:nil];

9.     

10.     self.blueController = bvc;

11.     

12.     [self.view insertSubview:blueController.view atIndex:0];

13.     [bvc release];

14.     

15.     [super viewDidLoad];

16.     // Do any additional setup after loading the view from its nib.

 

 

 

3.界面切换代码

SwitcherViewController.m文件

 

-(IBAction)switchViews:(id)sender{

 

 

    //使用动画

    [UIView beginAnimations:@"View Flip" context:nil];

    

    //设置持续时间

    [UIView setAnimationDuration:1.25];

    

    //使用平滑

    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

    

    if (self.yellowController.view.superview == nil) {

        if (self.yellowController.view == nil) {

            

            YellowViewController *yvc = [ [YellowViewController alloc] initWithNibName:@"YellowViewController" bundle:nil];

            

            self.yellowController = yvc;

            [YellowViewController release];

            

        }

        

        [self.blueController.view removeFromSuperview];

        [self.view insertSubview:yellowController.view atIndex:0];

        

        //设置翻页效果  支持缓存

        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];

        

        [blueController viewDidAppear:YES];

        [yellowController viewDidDisappear:YES];

        

        [self.blueController.view removeFromSuperview];

        [self.view insertSubview:yellowController.view atIndex:0];

        

        [blueController viewDidDisappear:YES];

        [yellowController viewDidAppear:YES];

    

    }else{

    

    

    

    

        if (self.blueController.view.superview == nil) {

            

            

            if (self.blueController.view == nil) {

                

                BlueViewController *bvc = [ [BlueViewController alloc] initWithNibName:@"BlueViewController" bundle:nil];

                

                self.blueController = bvc;

                

                [bvc release];

                

            }

            

            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];

            

            [yellowController viewDidAppear:YES];

            [blueController viewDidDisappear:YES];

            

            [self.yellowController.view removeFromSuperview];

            [self.view insertSubview:blueController.view atIndex:0];

            

            [yellowController viewDidDisappear:YES];

            [blueController viewDidAppear:YES];

            

        }

   

    }

    

    [UIView commitAnimations];

 

}

 

posted @ 2011-12-14 13:21  希望之旅  阅读(2330)  评论(0编辑  收藏  举报