从第一个视图翻转时第二个视图向上移动

问题描述:

我正在构建一个ap,其中需要从superView中移除当前视图并加载另一个视图。但是新加载的视图向上移动。同样,当第一个视图再次加载时,它会完美加载。从第一个视图翻转时第二个视图向上移动

任何人都可以建议一些东西来摆脱这个问题。

以下是我使用的视图翻转secondView

-(void) flipToBack 
{ 
CreateMessageViewController *oSecondView = [[CreateMessageViewController alloc] initWithNibName:@"CreateMessageViewController" bundle:nil]; 
[self setMsgViewController:oSecondView]; 
[oSecondView release]; 

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.8]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES]; 

[viewController.view removeFromSuperview]; 
[tabBarController.view removeFromSuperview]; 
[self.window addSubview:[msgViewController view]]; 
[UIView commitAnimations]; 
} 

提前感谢的方法!

期待您的回应。

感谢

经过很长时间玩代码和IB,我发现了错误。它被纠正为

打开mainWindow.xib并添加库中的UIViewController对象。将其类更改为处理指定viewController的类,然后进行单击。转到属性检查器的属性部分,并为控制器设置相应的笔尖名称,现在保存并退出IB。

和代码更改

-(void) flipToBack 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.8]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES]; 

    [viewController.view removeFromSuperview]; 
    [tabBarController.view removeFromSuperview]; 
    [self.window addSubview:[msgViewController view]]; 
    [UIView commitAnimations]; 
} 

感谢所有谁回答!

没有太多我可以告诉大家不用看大图。检查IB中的帧,看看它们是否正确设置。 这是你的appDelegate的代码吗? viewController是否在他的视图中显示了一个工具栏?也许你的看法转移了你的工具栏高度的确切像素?

+0

感谢您的回复......但IB中的帧完全放置,移位不等于工具栏的高度。问题依然存在,即使没有任何工具栏 – devsri 2011-02-16 10:19:43

+0

雅代码是AppDelegate的一部分...... – devsri 2011-02-16 10:21:54

明白了。 这是由于IB设置发生的。所以在IB你的viewController有一个statusBar,你的视图的高度为460(对于iPhone)而不是480.20点是statusBar的高度。当转换到第二个视图时,其矩形为{0,0,320,460},因此视图位于应用程序的状态栏后面,并且缺少底部的20个点。

要解决这个问题,你需要:

  1. 走进IB并设置CreateMessageViewController的一个状态栏未指定。
  2. 进入视图大小部分并将视图的高度设置为480(对于iPhone)。

现在您的CreateMessageViewController视图将正常显示。