我有一个应用程序,我需要从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)
我的行为非常奇怪.通常编辑器视图会出现,但如果我尝试使用导航栏上的后退按钮,我会得到额外的屏幕,有些空白,有些只是搞砸了.标题也变得随机.就像导航堆栈完全被冲洗一样.
什么是解决这个问题的更好方法?
谢谢,马特
可以从导航堆栈中弹出一个视图,然后再将其直接推到它上面吗?
我正在尝试为这一部分实现一个平面层次结构,并希望有一个分段控制器,但我不能让分段控制器看起来像我想要的任何东西,因此我为什么要尝试使用导航控制器.
单击按钮时,我执行了以下代码:
[[self navigationController] popViewControllerAnimated:YES];
MapsViewController *aViewController = [[MapsViewController alloc]
initWithNibName:@"MapsViewController" bundle:nil];
[self.navigationController pushViewController:aViewController animated:NO];
[aViewController release];
Run Code Online (Sandbox Code Playgroud)
它突然出现,但没有任何推动的迹象!任何帮助,将不胜感激.
uinavigationcontroller popviewcontroller pushviewcontroller ios
我有一个UITableViewController,当按下一个单元格时,我希望控制器弹出自己,然后将控制器弹出,将另一个视图控制器推入堆栈.
我正在调用此方法,因为popped-to viewController是tableViewController的委托
我目前正在调用此方法并延迟它,因为否则,一切都搞砸了等待动画结束.这样做似乎有点hacky,在我看来,如果有人的设备没有在我给出的分配的等待时间内弹出视图,它会失败.
以下是一些代码:
//**** code in my tableViewController ***//
[self.navigationController popViewControllerAnimated:YES];
[self.delegate cellPressedInTableViewControllerWithCalculationsModel:(id)anArgmentMyDelegateMethodTakes];
// **** Code in the viewController being popped to ****//
//CalculationsViewController is a subclass of UIViewController
CalculationsViewController *calcViewController = [[CalculationsViewController alloc] init];
//some customization code would go her
[self.navigationController performSelector:@selector(pushViewController:animated:) withObject:calcViewController afterDelay:0.75];
//this seems like the arbitrary part, the 0.75 second delay.
[calcViewController release];
Run Code Online (Sandbox Code Playgroud)
似乎应该有更好的方法来弹出/推送将在动画结束后执行的委托.在我看来,等待时间可能会导致意外问题.
我也试过用:
performSelectorOnMainThread:withObject:waitUntilDone
Run Code Online (Sandbox Code Playgroud)
但代码只是立即执行,视图层次结构搞砸了.
我也看过这个问题: 代表团问题 ,它让我这么做,但我很想知道是否有更好的方法来执行这样的任务,谢谢.
编辑:我也尝试在NSInvocation的实例中包装该方法,我无法让它协调方法调用,直到动画完成后没有任意设置延迟