2010-07-04 140 views
1

我有一個UIViewController,一個「切換器」,基本上只是將視圖從一個旋轉到另一個。UITableView導航欄「閃爍」動畫

這一切都很好,除了我正在過渡到的視圖是一個UIViewController它擁有一個UITableViewController。出於某種原因,當動畫「翻轉」時,導航欄不可見,並且一旦動畫完成,導航欄就會出現。

這真的不好看,我想知道是否有人知道我爲什麼會看到這個以及如何修復它?

感謝,

--D

編輯:按要求添加一些代碼!

切換viewDidLoad方法 - 目前初始化兩個ViewControllers的,因爲我認爲它可以幫助

[super viewDidLoad]; 

LogoView *logoController = [[LogoView alloc] init]; 
self.logoView = logoController; 
[self.view insertSubview:logoView.view atIndex:0]; 
[logoController release]; 

MainController *vController = [[MainController alloc] init]; 
self.controller = vController; 
[vController release]; 

    switchTimer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(switchViews) userInfo:nil repeats:NO]; 

切換switchViews方法

[UIView beginAnimations:@"View Flip" context:nil]; 
[UIView setAnimationDuration:.5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

if (self.controller.view.superview == nil) 
{ 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; 
    [controller viewWillAppear:YES]; 
    [logoView viewWillDisappear:YES]; 

    [logoView.view removeFromSuperview]; 
    [self.view insertSubview:controller.view atIndex:0]; 
    [logoView viewDidDisappear:YES]; 
    [controller viewDidAppear:YES]; 
} 

[UIView commitAnimations]; 

MainController viewDidLoad方法

CGRect frame = CGRectMake(0, 0, 320, 410); 

FirstLevelController *controller = [[FirstLevelController alloc] init]; 

navController = [[UINavigationController alloc] initWithRootViewController:controller]; 
navController.view.frame = frame; 
navController.navigationBar.tintColor = [UIColor blackColor]; 

[controller release]; 

[self.view addSubview:navController.view]; 

的FirstLevelController內我只是將這些項目添加到t中能夠查看...我嘗試添加navController.title = @「Home」,但我甚至沒有看到沒有文字的黑色導航欄......它只是一個很大的空白空間。

幫助非常感謝!

+0

粘貼一些代碼會有所幫助。 – runmad 2010-07-04 15:17:30

+0

代碼粘貼!!!! – dewberry 2010-07-04 16:16:04

回答

0

哈!我將動畫「緩存」從YES更改爲NO,並將其修復!好極了!