我可以在不使用这样的代码的情况下将视图控制器从导航控制器堆栈中移除吗
[mynavigationController popViewControllerAnimated:YES];任何帮助都将不胜感激。
发布于 2011-12-26 22:17:19
@rishi几乎做到了。您需要一个可变数组来进行编辑。
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;来自UINavigationController docs的代码片段
视图@property(非原子,复制) NSArray *视图控制器
..。将新的视图控制器数组分配给此属性等效于在动画参数设置为NO.的情况下调用setViewControllers: animated :方法
发布于 2011-12-26 19:06:02
我不知道如何从导航控制器的视图控制器中删除视图控制器,但是如果您想在返回时跳过特定的视图,那么可以尝试使用这个视图
-(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];
}发布于 2011-12-26 20:24:05
您可以执行以下操作-
编辑-
NSMutableArray *activeControllerArray = [self.navigationController.viewControllers mutableCopy];
[activeControllerArray removeObjectAtIndex:1];
self.navigationController.viewControllers = activeControllerArray;此外,对于删除,您可以创建自定义逻辑,如使用isKindOfClass方法检查特定的控制器,然后删除该控制器或您想要的任何东西
https://stackoverflow.com/questions/8635107
复制相似问题