如果从过流上下文视图控制器呈现错误呈现视图控制器

时间:2017-05-08 17:17:00

标签: ios iphone swift uiviewcontroller

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

问题是,当我想关闭View Controller C时,presentingViewController属性指向VC A而不是VC B,而且,VC B的viewWillAppear未被调用,而VC A中的viewWillAppear是。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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