【问题标题】:how to return to previous view controllers in current view controller?如何在当前视图控制器中返回到以前的视图控制器?
【发布时间】:2012-11-07 00:03:17
【问题描述】:

我想从当前视图控制器返回到以前的视图控制器。情况是这样的: A,B,C,D 是视图控制器。 A 呈现 B,B 呈现 C,C 呈现 D。我知道使用委托可以从 D 到 C,C 到 B,B 到 A。现在我想直接从 D 返回到 A。这个怎么做? 任何建议表示赞赏。

【问题讨论】:

  • 我相信这是一个重复的问题:stackoverflow.com/questions/10003562/…
  • 我没有使用 uinavigationcontroller。它只是普通的视图控制器。
  • 您可能想要使用UINavigationController 和推送/弹出而不是模态转换和呈现/关闭。
  • 如果我理解你的问题,一旦你有了导航控制器,你在其中导航的视图控制器只是普通的旧控制器,没什么特别的。您只需将您的[self presentViewController ...] 引用替换为[self.navigationController pushViewController ...]。并将[self dismissViewControllerAnimated ...] 替换为[self.navigationController popViewControllerAnimated ...]。 (或者,如果使用 segues,请将模态 segues 替换为 push segues。)
  • @Rob 谢谢,也许我需要阅读 UINavigationController 指南。

标签: ios uiviewcontroller


【解决方案1】:

使用下面的语句:

[self.navigationController popToRootViewControllerAnimated:TRUE];

for (UIViewController *vc in [self.navigationController viewControllers]) {

    if([vc isKindOfClass:[A class]])
    {
        [self.navigationController popToViewController:vc animated:TRUE];
    }
}

谢谢

【讨论】:

  • 如果我不使用导航控制器,只是普通的视图控制器,这还能用吗?
  • 你是如何从一个视图控制器推送到另一个视图控制器的?您可以在这里发布您的移动代码吗?
  • 我使用 presentViewController 和 dismissViewController 方法
  • 也许我需要更改为 UiNavigationController,感谢您的分析。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
  • 2018-03-08
  • 2012-12-02
相关资源
最近更新 更多