【问题标题】:Remove UIViewcontroller from Presentmodelview stack从 Presentmodelview 堆栈中删除 UIViewcontroller
【发布时间】:2017-04-01 13:03:45
【问题描述】:

我想从当前模型视图的堆栈中删除 UIViewcontroller

我有下面的场景

UIViewcontrollerA 
UIViewcontrollerB 
UIViewcontrollerA 
UIViewcontrolleC
UIViewcontrolleA
UIViewcontrolleA

我想从这个呈现的视图控制器中删除所有 UIViewcontrolleA。

我如何获得这些? 所以输出将是

 UIViewcontrollerB 
 UIViewcontrolleC

我可以很容易地在导航控制器中做到这一点,同样需要在当前模型控制器中。

NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[allViewControllers removeObjectAtIndex:0];
[allViewControllers removeObjectAtIndex:1];

[self.navigationController setViewControllers:allViewControllers animated:YES];

【问题讨论】:

  • 你为什么要这样做?如果您遇到这个问题,您应该重新考虑您的整个应用架构。
  • 我有以下架构:loginview->tabbar(带有嵌入式 UINavigationController)-> 然后这个 UIViewcontrolleA 需要从任何地方调用.....并且 UIViewcontrolleA 需要从其中的按钮调用在其中重新加载不同的数据。我试图重新加载 UIViewcontrolleA
  • 或者只需要删除所有呈现的视图控制器即可返回基础
  • “或者只需要删除所有呈现的视图控制器即可返回基础”然后执行此操作。只需解雇回“基地”。没问题。

标签: ios objective-c uiviewcontroller


【解决方案1】:

dismiss​View​Controller​Animated:​completion:​ 在 vc 上调用时将删除它以及它上面显示的任何内容。

A->B->C->D->E

所以要解除,比如上面堆栈中的 D 和 E,只需在 C 上调用解除。要恢复 D 和 E,再次呈现它们而不使用动画。您需要自己跟踪此 A、B、C... 数组。

另请注意,您在 SDK 中看到的支持如此之少的事实表明该想法不被鼓励。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-05
    • 2013-08-11
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    相关资源
    最近更新 更多