我在两个视图之间的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在两次视图转换过程中闪烁。
我没有解决这个问题。
有什么建议吗?
谢谢
答案 0 :(得分:2)
您是否尝试过[setAnimationTransition:forView:cache:NO]?当我习惯使用UIView动画并使用缓存时,我得到了一些与你类似的奇怪行为。