【问题标题】:Wrong presenting view controller if presented from an over-current-context view controller如果从过流上下文视图控制器呈现,则呈现视图控制器错误
【发布时间】:2017-05-08 17:17:00
【问题描述】:

所以我有 3 个视图控制器的问题。我有视图控制器 A,它显示了一个视图控制器 B,其演示风格为 currentContext。此视图控制器 B 以默认呈现样式呈现视图控制器 C。像这样的东西: presents over current context presents regularly VC A -------------------------------> VC B --------------------> VC C

问题是,当我想关闭视图控制器 C 时,presentingViewController 属性指向 VC A 而不是 VC B,而且,没有调用 VC B 的 viewWillAppear,而 viewWillAppear在 VC A 中。

我无法使用dismiss(animated flag: Bool, completion: (() -> Void)? = nil)的完成块,因为VC B无法控制VC C的解雇。它是一个可以从应用程序中的多个点开始的流程,所以导航的管理这个流程是在一个单独的类中完成的。

这里发生了什么?我真的需要调用VC B的viewWillAppear

【问题讨论】:

  • 您愿意发布 3 个视图控制器的代码吗?没有它就很难为您提供帮助。

标签: ios iphone swift uiviewcontroller


【解决方案1】:

@Kinopio - 我猜你面临的问题是因为你正在从 VC A 中解散控制器,所以这里 self 指向当前类。您需要将消息传递给 VC B,然后从那里解雇。

喜欢

//code in VC A
func dismissViewControllerNoC(){
 viewControllerNoB.dismiss()
}

//code in VC B
func dismiss(){
dismiss(animated flag: Bool, 
  completion: (() -> Void)? = nil)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多