我是否可以在不使用类似
的代码的情况下从导航控制器堆栈中删除视图控制器[mynavigationController popViewControllerAnimated:YES];
任何帮助将不胜感激。
答案 0 :(得分:1)
我不知道要从导航控制器的视图控制器中删除视图控制器,但如果您想在返回时跳过特定视图,请尝试使用此视图
-(void)goToMainCategoryView
{
id object = nil;
for (UIViewController *viewControl in self.navigationController.viewControllers)
{
if(viewControl.view.tag == 0)
{
object = viewControl;
}
}
[self.navigationController popToViewController:object animated:YES];
}
答案 1 :(得分:1)
NSMutableArray *activeControllerArray =
[self.navigationController.viewControllers mutableCopy];
[activeControllerArray removeObjectAtIndex:indexToRemove];
// If you still have a handle to the viewcontroller you could use other methods like removeObject:
self.navigationController.viewControllers = activeControllerArray;
的摘录
@property(非原子,复制)NSArray * viewControllers
...为此属性分配新的视图控制器数组等效于调用setViewControllers:animated:方法,并将动画参数设置为NO。
答案 2 :(得分:0)
您可以执行以下操作 -
编辑 -
NSMutableArray *activeControllerArray = [self.navigationController.viewControllers mutableCopy];
[activeControllerArray removeObjectAtIndex:1];
self.navigationController.viewControllers = activeControllerArray;
同样对于删除,您可以制作自定义逻辑,例如使用isKindOfClass方法检查特定控制器,然后删除您想要的那个或任何