Definespresentationcontext导致搜索者的内容转移?

时间:2017-11-05 01:38:48

标签: swift xcode9

我使用Swift 4和xcode 9.1。这个问题有些令人困惑,所以我已经将图片包括在内,希望有所帮助。

这是我的设置: enter image description here

当我从VC1导航到subVC1,然后切换到VC2并进入subVC2,然后切换回subVC1,一切正常。

当我在VC1的搜索栏中输入内容后执行上述操作时,我会看到A(下面的黑屏)。

当我为VC1设置definesPresentationContext = true时,这解决了黑屏问题,但会产生新问题。通常当您从搜索器中键入的内容从subCV1回到VC1时,它看起来像视图B(下面,中间面板)。使用definesPresentationContext = true,VC1在从subVC1返回之后最终看起来像视图C(下面,右侧面板)。所有内容都被搜索栏向上移动并隐藏。

对于上面未命名的VC也会发生这种情况,也会导航到subVC1。

我如何弄清楚为什么内容会向上移动以及如何解决?

enter image description here

2 个答案:

答案 0 :(得分:1)

我在调查类似的问题时多次看过这篇文章,所以我想在这里发表我的发现。

我的UITableViewHeaderFooterView是"弹出"在我的搜索结果顶部 - 位于UITableView - 从ViewController导航回UISearchController后一瞬间。

"在顶层酒吧"如上所述在我的Storyboard文件中检查过,但我在代码中声明了definesPresentationContext

我发现我需要添加一行,以便标题不再跳转:

extendedLayoutIncludesOpaqueBars = true
definesPresentationContext = true

它阻止了"黑屏"问题内容转移问题。

答案 1 :(得分:0)

在测试了很多解决方案(设置内容y位置,确认正确的约束条件)之后,我发现了这个问题。

以前,我的设置需要取消选中在顶栏下延伸边,新设置要求检查它。请参阅下面的新工作设置,它修复了原始问题中的所有视觉故障。希望这有助于某人!

enter image description here