首页 文章

关闭以前的Viewcontroller

提问于
浏览
0

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

所有的箭头都是模态的

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

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

而且,我怎样才能完全删除以前的viewcontroller的实例?

2 回答

  • 1

    你可以回到 parentViewController 链上:

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

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

  • 1

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

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

相关问题