Iphone 初学者:多视图应用程序不';t正确切换视图

Iphone 初学者:多视图应用程序不';t正确切换视图,iphone,objective-c,ios,xcode4,Iphone,Objective C,Ios,Xcode4,我编写了一个基本的两视图应用程序,每次按下按钮时都可以从一个视图切换到另一个视图 但由于某种原因,当我在模拟器上运行它时,两个视图总是比MainWindow.xib视图高出几个像素,总是在它上面。奇怪的是,在视图之间切换时没有动画 有什么问题 这是我在AppDelegate.m中的内容 -(void)switchView:(UIView *)view1 toView:(UIView *)view2{ [UIView beginAnimations:@"Animation" contex

我编写了一个基本的两视图应用程序,每次按下按钮时都可以从一个视图切换到另一个视图

但由于某种原因,当我在模拟器上运行它时,两个视图总是比MainWindow.xib视图高出几个像素,总是在它上面。奇怪的是,在视图之间切换时没有动画

有什么问题

这是我在AppDelegate.m中的内容

-(void)switchView:(UIView *)view1 toView:(UIView *)view2{

    [UIView beginAnimations:@"Animation" context:nil];
    [UIView setAnimationDuration:1.75];
    [UIView setAnimationTransition:UIViewAnimationOptionTransitionFlipFromLeft forView:self.window cache:YES];
    [view1 removeFromSuperview];
    [window addSubview:view2];
    [UIView commitAnimations];
}
嗨,试试这个

 -(void)switchView:(UIView *)view1 toView:(UIView *)view2
    {
        view2.frame = self.window.bounds;
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDuration:0.5f];
        [UIView setAnimationBeginsFromCurrentState:YES];
        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:view2 cache:NO];
        [view1 removeFromSuperview];
        [window addSubview:view2];
        [UIView commitAnimations];
    }
也试试这个

[UIView transitionWithView:view2 duration:0.5
        options:UIViewAnimationTransitionFlipFromLeft //change to whatever animation you like
        animations:^ { [window addSubview:view2]; }
        completion:nil];

以下是两个非常好的例子:

或者这个:

     Can you post some code regarding this .Because if you click on Segment change 
it will change the Views.IF you take two views on same interface Builder.
        Try out this

    IBOutlet UIView *viewA;
    IBOutlet UIView *viewB;

    in .m file 



-(IBAction)SegmentChange
{
    if(segment.selectedSegmentIndex==0)
    {
        viewA.hidden=NO;
        viewB.hidden=YES;


    }

    else if(segment.selectedSegmentIndex==1)
    {
        [self.View addSubview:viewB];
        viewA.hidden=YES;
        viewB.hidden=NO;

    }

}