UINavigationController动画问题

时间:2009-11-03 22:16:23

标签: iphone iphone-sdk-3.0

我在两个视图之间的UINavigationController动画有一个小问题。 我的应用程序构建了两个以上的视图 第一个视图包含登录信息,第二个视图包含根菜单,最后一个视图包含示例数据等等。 我的MainWindow.xib包含一个UINavigationController组件,它包含所有导航结构。 当我的登录视图加载时,我使用这行代码

- (void)viewWillAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:YES animated:NO];

}

隐藏UINavugationConttoller(登录时我不需要向用户导航栏显示。) 之后用户在登录视图上执行登录提交按钮 我使用此代码将RootmenuView推送到UINavigationController的堆栈。

RootMenuController *rootMenuController = [[RootMenuController alloc] initWithNibName:@"RootMenuController" bundle:0];   
[self.navigationController pushViewController:rootMenuController animated:NO];
[rootMenuController release];

它运作良好。当Rootmenuview加载用户必须显示导航栏时,我将使用此代码显示UINavigation的工具栏

- (void)viewDidAppear:(BOOL)animated {
[self.navigationController setNavigationBarHidden:NO animated:YES];

}

但是我不喜欢UINavigationController的默认动画过渡,然后我用下面的代码改变了

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

[UIView setAnimationTransition:
 UIViewAnimationTransitionFlipFromRight
                       forView:self.navigationController.view cache:YES];
RootMenuController *rootMenuController = [[RootMenuController alloc] initWithNibName:@"RootMenuController" bundle:0];   
[self.navigationController pushViewController:rootMenuController animated:NO];

[UIView commitAnimations];

[rootMenuController release];

它也有效,但UINavigationController在两次视图转换过程中闪烁。

我没有解决这个问题。

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您是否尝试过[setAnimationTransition:forView:cache:NO]?当我习惯使用UIView动画并使用缓存时,我得到了一些与你类似的奇怪行为。