我有一个应用程序,我需要从UINavigationController的堆栈中删除一个视图,并将其替换为另一个.情况是第一个视图创建一个可编辑的项目,然后用该项目的编辑器替换它自己.当我在第一个视图中执行明显的解决方案时:
MyEditViewController *mevc = [[MYEditViewController alloc] initWithGizmo: gizmo];
[self retain];
[self.navigationController popViewControllerAnimated: NO];
[self.navigationController pushViewController: mevc animated: YES];
[self release];
Run Code Online (Sandbox Code Playgroud)
我的行为非常奇怪.通常编辑器视图会出现,但如果我尝试使用导航栏上的后退按钮,我会得到额外的屏幕,有些空白,有些只是搞砸了.标题也变得随机.就像导航堆栈完全被冲洗一样.
什么是解决这个问题的更好方法?
谢谢,马特
我有一个UINavigationController与以下视图控制器
A - > B(B在顶部)
现在对于B中的一些动作,我想用C替换B(最后它应该是A-> C).
我尝试了以下方法:当B中的动作发生时,我做了一个[self.navigationController popViewControllerAnimated:NO];.在viewWillAppearA 的功能中,我检查是否需要立即按C并执行此操作.
问题是当按下C时,过渡动画是一个弹出动画(从右到左滑动)而不是推动.
看起来应用的动画与早期的流行音乐相混淆.
我该如何解决 ?
我尝试在[self.navigationController popViewControllerAnimated:NO];上面传递YES 但是也没有解决问题