currentContext和overCurrentContext有什么区别?

时间:2019-10-07 00:13:00

标签: swift uimodalpresentationstyle

currentContextoverCurrentContext的{​​{3}}具有相同的描述。

我可以发现的差异是:

  • (如果有):

    @available(iOS 3.2, *)
    case currentContext
    
    @available(iOS 8.0, *)
    case overCurrentContext
    
  • 使用currentContext,在关闭显示的视图控制器后,将调用被覆盖的视图控制器的viewWillAppear(不必是提供上下文的视图控制器)。使用overCurrentContext不会被调用。

还有其他区别吗?

1 个答案:

答案 0 :(得分:2)

它与fullScreenoverFullScreen之间的区别完全相同。第一个将视图从其覆盖的区域中删除;第二个没有,只是覆盖了它。

(在两种情况下,如果您所呈现的视图控制器的主视图的背景色具有一定的透明度,就可以很容易地从视觉上看到这种差异。但是,行为上的差异更为重要;当某些视图突然从视图中被撕开时,它们将变得不满意。视图层次结构,因此最好保留它们并使用.over变体。)

  

使用currentContext,在关闭显示的视图控制器后,将调用所覆盖的视图控制器的viewWillAppear(不必是提供上下文的视图控制器)。使用overCurrentContext不会调用它。

那只是我刚才所说的结果。使用over时,viewWillAppear不会被解雇,因为视图从不消失。它只是坐在呈现的视图后面。同样,这与fullScreenoverFullScreen完全平行。