Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 什么';currentContext和overCurrentContext的区别是什么?_Swift_Uimodalpresentationstyle - Fatal编程技术网

Swift 什么';currentContext和overCurrentContext的区别是什么?

Swift 什么';currentContext和overCurrentContext的区别是什么?,swift,uimodalpresentationstyle,Swift,Uimodalpresentationstyle,currentContext和overCurrentContext的说明相同 我能发现的区别是: 自可用时起: @available(iOS 3.2, *) case currentContext @available(iOS 8.0, *) case overCurrentContext 使用currentContext,在解除显示的视图控制器后,将调用覆盖视图控制器的viewwillbeen(不必是提供上下文的视图控制器)。使用overCurrentContext不会调用它 还有其

currentContext
overCurrentContext
的说明相同

我能发现的区别是:

  • 自可用时起:

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


还有其他区别吗?

这与
全屏
全屏
之间的区别完全相同。第一种方法从视图所覆盖的区域移除视图;第二个没有,它只是覆盖了它

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

对于currentContext,在解除显示的视图控制器后,将调用覆盖视图控制器的视图(不必是提供上下文的视图控制器)。对于overCurrentContext,不会调用它


这只是我刚才所说的一个结果。
over
视图将出现
不会被取消,因为视图从一开始就没有消失;它只是在呈现的视图后面。同样,这与
全屏
全屏

完全平行。在我的例子中,这是一个导航堆栈中有一些视图的导航控制器。显示最顶部的视图时,导航控制器默认定义显示上下文。这是否意味着
currentContext
隐藏导航堆栈中的视图,而
全屏显示时仍保留所有视图,但覆盖它们?嗯。如果导航控件oller正在定义演示上下文,首先使用当前上下文或过当前上下文有什么意义?当然导航控制器占据了整个屏幕,所以这只是一种迂回的说法,表示全屏或过全屏,是吗?当前上下文仅在“小”范围内有用像popover或儿童一样查看控制器。如果不打开另一罐蠕虫,原因是有一个底层控制器可以在视图中滑动。如果该控制器及其视图被全屏覆盖,则我希望避免一些副作用。因此,
overCurrentContext
在我的情况下工作得非常好。好吧因此我同意并建议
overCurrentContext
。听起来您不想做的就是将导航控制器的视图从层次结构中删除,这就是
currentContext
将要做的。顺便说一句,您只需切换到实际显示的视图调试器,就可以全面了解这一点您可以同时创建视图控制器层次结构和视图层次结构。