>参与者:
A
和C
是具有纯色背景的视图控制器。默认设置不会发生任何更改。B
是具有半透明背景的视图控制器。它应该覆盖它所呈现的视图控制器的一部分。模态演示风格overFullScreen
短篇小说:A
呈现B
,B
呈现C
。viewWillDisappear
从不被召唤A
长话短说:
- 屏幕上
A
A
向B
发出以下电话:self.present(B, animated: true)
- 屏幕上
A
和B
都可见。viewWillDisappear
A
方法未被调用,这是意料之中的,因为它仍然可见 B
向C
发出以下电话:self.present(C, animated: true)
C
出现在屏幕上,涵盖了所有内容,它的演示模式是fullscreen
.B
将从视图层次结构中删除。viewWillDisappear
B
方法称为- 检查视图层次结构我可以看到
A
仍然存在,并且从未在A
上调用viewWillDisappear
,但它也不可见,因为它被全屏视图控制器覆盖。
我希望A
与B
一起从层次结构中删除,因为如果被视图控制器覆盖fullscreen
它们都不可见。
是UIKit的错误还是我做错了?
根据文档,这是UIModalPresentationStyle.overFullScreen
的预期行为。另一种风格 -.fullScreen
- 似乎更接近你想要的行为。