我有一个 UIViewController,一个“切换器”,它基本上只是将一个视图从一个旋转到另一个。
这一切都很好,除了我要转换到的视图是一个包含 UITableViewController 的 UIViewController。由于某种原因,当动画“翻转”时,导航栏是不可见的,一旦动画完成,导航栏就会出现。
它真的看起来不太好,我想知道是否有人知道我为什么会看到这个以及如何解决它?
谢谢,
--d
编辑:按要求添加一些代码!
切换器 viewDidLoad 方法 - 目前正在初始化两个 ViewController,因为我认为它可能会有所帮助
[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”,但我什至没有看到没有文本的黑色导航栏……它只是一个很大的空白空间.
非常感谢您的帮助!