从模态视图控制器推送/弹出到另一个视图控制器(包括图片)

Posted

技术标签:

【中文标题】从模态视图控制器推送/弹出到另一个视图控制器(包括图片)【英文标题】:Push/pop to another view controller from a Modal View Controller (includes picture) 【发布时间】:2014-04-18 12:22:20 【问题描述】:

我有两个 UIViewController,分别称为 VCAVC BVCB 有两个子视图,它们显示为模态视图控制器。两个模态视图控制器是M 1M 2。是否可以从M2 转到VCA?如果可能,我需要弹出M2 并转到VCA。推送到VCA 不起作用,因为 M2 没有导航栏。并且将VCA 呈现为模态并不好,因为VCA 需要维护其导航栏。

那么是否可以从模态视图控制器M2 跳转到VCA

提前致谢。

【问题讨论】:

希望此链接对您有所帮助。 ***.com/questions/14907518/… 【参考方案1】:

VCA 有一个链接说它是您的根控制器,这意味着它应该是您导航堆栈的基础。因此,您应该在运行时使用 VCA -> VCB -> M1 -> M2,而不是分支图。我会考虑让 VCB 监听 M2 完成的通知。然后它可以关闭 M1,它关闭 M2,并弹出到根视图控制器。

【讨论】:

【参考方案2】:

为 M2 UIViewController 使用 custom delegate,只需关闭与委托相关的模态视图。并使用 VC A 控制器中的委托方法导航到 VC B。

【讨论】:

您的意思是“使用 VCB 中的委托方法导航到 VCA”吗? :)【参考方案3】:

在自定义函数中,我们需要推送 navigationController 对象而不是 viewController 的特定对象。在 Swift 2 中使用以下代码

    let objNextVC : SignUpOptionVC = self.storyboard?.instantiateViewControllerWithIdentifier("SignUpOptionVC") as! SignUpOptionVC
    let navigation = UINavigationController(rootViewController: objNextVC)
    navigation.navigationBarHidden = true
    self.navigationController?.presentViewController(navigation, animated: true, completion: nil)

【讨论】:

以上是关于从模态视图控制器推送/弹出到另一个视图控制器(包括图片)的主要内容,如果未能解决你的问题,请参考以下文章

从另一个导航控制器弹出视图控制器到另一个视图控制器

故事板 - 弹出到视图控制器然后推送导致多次推送

模态下的弹出/推送视图

如何关闭视图控制器并快速弹出到根视图控制器?

在导航控制器中弹出到根视图

ios:如何关闭模态视图控制器,然后弹出推送的视图控制器