UIViewController由另一个全屏视图控制器覆盖,但未从层次结构中删除

时间:2017-06-14 18:57:51

标签: ios uikit

参与者

  • AC是具有扎实背景的视图控制器。没有更改默认设置。
  • B是一个半透明背景的视图控制器。它应该覆盖它呈现的视图控制器的一部分。 ModalPresentation样式为overFullScreen

短篇小说A展示BB展示C。永远不会在viewWillDisappear

上调用A

长篇故事

  • A在屏幕上
  • AB部分发出以下电话:self.present(B, animated: true)
  • 屏幕上显示AB。 <{1}}的{​​{1}}方法是不是,这是预期的,因为它仍然可见
  • viewWillDisappearA部分发出以下电话:B
  • C出现在屏幕上,涵盖了所有内容,它的演示模式为self.present(C, animated: true)
  • C已从视图层次结构中删除。 fullscreen的{​​{1}}方法称为
  • 检查视图层次结构我可以看到B仍然存在且viewWillDisappear从未在B上调用,但它不可见,因为它被全屏视图控制器覆盖。

我希望AviewWillDisappear一起从层次结构中删除,因为A视图控制器覆盖了所有A

这是UIKit的错误还是我做错了?

1 个答案:

答案 0 :(得分:0)

Per the documentation,这是UIModalPresentationStyle.overFullScreen的预期行为。另一种风格 - .fullScreen - 似乎更接近你想要的行为。