UITableView导航栏在动画上“闪烁”

时间:2010-07-04 15:15:43

标签: iphone uiviewcontroller uitableview commitanimations

我有一个UIViewController,一个“切换器”,基本上只是将视图从一个旋转到另一个。

一切都很好,除了我转换到的视图是一个UIViewController,它包含一个UITableViewController。出于某种原因,当动画“翻转”时,导航栏是不可见的,一旦动画完成,导航栏就会出现。

它真的不好看,我想知道是否有人知道为什么我会看到这个以及我如何解决它?

谢谢,

- d

编辑:按要求添加一些代码!

Switcher 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中我只是将项目添加到表格视图中...我尝试添加一个navController.title = @“Home”,但我甚至没有看到没有文本的黑色导航栏...它只是一个大空地。

非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

哈!我将动画“缓存”从YES更改为NO,并修复了它!耶!