关闭以前的Viewcontroller

时间:2015-03-23 13:02:08

标签: ios segue viewcontroller

我目前正在开发一款具有多个viewcontroller的游戏。 VC1(简介) - > VC2(游戏选择) - > VC3,VC4,VC5(游戏) - > VC6(显示标记)

所有箭头都是模态segue

我使用unwind segue从VC6返回到VC2并想重播。但是,当选择游戏去VC3时,VC3并不像预期的那样全新。它似乎是完成的游戏条件。

如果我真的想在显示标记后重播它,我怎么能用segue和Viewcontroller来实现呢?

此外,如何完全删除先前viewcontroller的实例?

2 个答案:

答案 0 :(得分:1)

您可以像这样操作导航控制器的视图控制器阵列

NSMutableArray *navigarray = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[navigarray removeLastObject]; //navigarray contains all vcs
[[self navigationController] setViewControllers:navigarray animated:YES];

答案 1 :(得分:1)

您可以返回parentViewController链:

UIViewController *viewController = nil;
do {
    viewController = self.parentViewController;
} while (![self isViewControllerImLookingFor:viewController]);

或者您可以实现自定义导航堆栈管理器,并存储一组导航控制器,类似于UINavigationController的工作方式。

相关问题