我目前正在开发一款具有多个viewcontroller的游戏。 VC1(简介) - > VC2(游戏选择) - > VC3,VC4,VC5(游戏) - > VC6(显示标记)
所有箭头都是模态segue
我使用unwind segue从VC6返回到VC2并想重播。但是,当选择游戏去VC3时,VC3并不像预期的那样全新。它似乎是完成的游戏条件。
如果我真的想在显示标记后重播它,我怎么能用segue和Viewcontroller来实现呢?
此外,如何完全删除先前viewcontroller的实例?
答案 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
的工作方式。