2010-03-13 88 views
0

我几乎与我的第一个IPhone应用程序,一切都结束工作正常 - 除了一个很小的显示的bug:IPhone SDK - 过渡到NavigationController显示问题

我starscreen是的UIView(全屏)没有导航栏或工具栏。 如果我在一个启动按钮点击,有一个UIViewAnimationTransitionFlipFromRight动画翻转到主导航控制器:

-(IBAction) switchViewToMainMenu { 
[UIView beginAnimations:@"Flip View" context:nil]; 
[UIView setAnimationDuration:1.25]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.window cache:YES]; 
[self.navController viewWillAppear:YES]; 
[self.startScreenViewController viewWillDisappear:YES]; 

[self.startScreenViewController.view removeFromSuperview]; 
[self.window addSubview:navController.view];  

[self.startScreenViewController viewDidDisappear:YES]; 
[self.navController viewDidAppear:YES]; 
[UIView commitAnimations]; 
self.startScreenViewController=nil; 
[startScreenViewController release]; 

}

这个工作,除了一个小问题的罚款:

当导航控制器视图出现(翻转),顶部的导航栏是一些太高的像素(导航栏应该是白色条)。当动画完成后,导航栏将下降到正确的位置。这看起来不太漂亮...

任何想法如何解决这个问题?

回答

0

我们找到了一个使用setAnimationDelay的解决方案,给tabbar加载并放置在视图中一段时间​​。 以为你必须改变一下代码才能使用setAnimationDelay。 你必须在提交动画之前的setanimationtransition和setanimationtransition之前使用setyanimationdelay。所以上面的代码应该结束为:

[UIView setAnimationDelay:2]; // 2 seconds delay seems to be working for us 
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.window cache:YES]; 
[UIView commitAnimations];