代码之家  ›  专栏  ›  技术社区  ›  Manuel

currentcontext和overcurrentcontext有什么区别?

  •  0
  • Manuel  · 技术社区  · 5 年前

    这个 docs 两者都有 currentContext overCurrentContext 有相同的描述。

    我能发现的区别是:

    • 当它们可用时:

      @available(iOS 3.2, *)
      case currentContext
      
      @available(iOS 8.0, *)
      case overCurrentContext
      
    • 当前上下文 ,在删除所呈现的视图控制器之后, viewWillAppear 被覆盖的视图控制器被调用(它不必是提供上下文的视图控制器)。与 过电流上下文 没有人叫它。

    还有什么区别吗?

    1 回复  |  直到 5 年前
        1
  •  2
  •   matt    5 年前

    这完全不同于两者之间的差别。 fullScreen overFullScreen 是的。第一个将视图从它所覆盖的区域中移除;第二个不会,它只是覆盖它。

    (在这两种情况下,如果显示的视图控制器的主视图的背景色具有某种透明度,则很容易从视觉上看到这种差异。但行为上的差异更为重要;有些视图在突然从视图层次结构中删除时会变得不高兴,因此最好保留它们并使用 .over 变体。)

    使用currentcontext,在解除呈现的视图控制器之后,将调用覆盖视图控制器的viewwillappear(它不必是提供上下文的视图控制器)。使用过电流上下文时,不会调用它。

    那只是我刚才说的话的后果。与 over ,请 viewWillAppear 不是因为视图一开始就没有消失,所以被要求撤职;它只是坐在呈现视图的后面。再说一遍,这和 全屏 过全屏 是的。