【问题标题】:Dismiss a previous Viewcontroller关闭之前的 Viewcontroller
【发布时间】:2015-03-23 22:56:34
【问题描述】:

我目前正在开发具有多个视图控制器的游戏。 VC1(介绍) -> VC2(游戏选择) ->VC3,VC4,VC5(游戏) -> VC6(显示标记)

所有的箭头都是模态的segue

我使用 unwind segue 从 VC6 回到 VC2 并想重播。 However, when select a game to go to VC3, the VC3 is not brand new as expected.它显示为完成的游戏条件。

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

此外,我怎样才能完全删除以前的视图控制器的实例?

【问题讨论】:

    标签: ios segue viewcontroller


    【解决方案1】:

    你可以回到parentViewController链上:

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

    或者您可以实现自定义导航堆栈管理器,并存储导航控制器数组,类似于 UINavigationController 所做的那样。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我没有使用导航控制器。所有的 viewcontroller 都不是导航。
      猜你喜欢
      • 2017-05-25
      • 2019-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多