【问题标题】:Dismiss presenting view controller关闭呈现视图控制器
【发布时间】:2014-10-30 19:33:49
【问题描述】:

我有以下情况:

视图控制器 A -> 模态呈现 -> 视图控制器 B

视图控制器 B -> 模态呈现 -> 视图控制器 C

我想关闭视图控制器“C”并直接转到“A”而不是显示“B”,因为当时显示“B”没有意义。

我怎样才能做到这一点?

谢谢, 丹尼尔

【问题讨论】:

  • 查找“展开转场”
  • 谢谢!您能否将此设置为答案,以便我接受?

标签: ios objective-c


【解决方案1】:

在“视图控制器 C”中 ->

在 iOS 6 之前: 使用

[self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];

或者,

[self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES];

iOS 6 及以上版本: 使用

[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

【讨论】:

  • 效果很好!!!我只上一级,但似乎您必须在要关闭的视图的父控制器上调用关闭
【解决方案2】:

您可以使用 segue 来呈现来自其他视图控制器的视图控制器。

要通过层次结构向后返回,您通常会关闭呈现的视图控制器,或者通过展开转场返回特定的视图控制器。

【讨论】:

  • 只有界面生成器。
【解决方案3】:

尝试以下方法:

[vcB dismissModalViewControllerAnimated:NO]   //no Animation, so happens instantly
[vcA dismissModalViewControllerAnimated:YES]  //with Animation, this is all you see  

【讨论】:

    【解决方案4】:

    如果您的 B 和 C 相关并且是 A 的更详细版本,您最好的选择是使用导航控制器

    A->B-C 。您 unwindsegue 以展开堆栈/弹出压入堆栈的视图控制器。

    阅读此链接非常有用 - http://chrisrisner.com/Unwinding-with-iOS-and-Storyboards

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 2017-04-07
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多