我有一个应用程序,需要从UINavigationController的堆栈中删除一个视图,并使用另一个视图替换它。情况是第一个视图创建一个可编辑项,然后用该项的编辑器替换自己。当我在第一个视图中尝试最明显的解决方案时:
MyEditViewController *mevc = [[MYEditViewController alloc] initWithGizmo: gizmo];
[self retain];
[self.navigationController popViewControllerAnimated: NO];
[self.navigationController pushViewController: mevc animated: YES];
[self release];
我的行为非常奇怪。通常编辑器视图会出现,但是如果我尝试使用导航栏上的返回按钮,会出现额外的屏幕,一些是空白的,一些只是混乱的。标题也变得随机了。就像导航栈完全被破坏了一样。
对于这个问题,有更好的解决方法吗?
谢谢, Matt
[UIView beginAnimations:@"View Flip" context:nil]; [UIView setAnimationDuration:0.80]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:navController.view cache:NO]; [navController pushViewController:newController animated:YES]; [UIView commitAnimations];
- Martin