我使用Swift 4和xcode 9.1。这个问题有些令人困惑,所以我已经将图片包括在内,希望有所帮助。
当我从VC1导航到subVC1,然后切换到VC2并进入subVC2,然后切换回subVC1,一切正常。
当我在VC1的搜索栏中输入内容后执行上述操作时,我会看到A(下面的黑屏)。
当我为VC1设置definesPresentationContext = true
时,这解决了黑屏问题,但会产生新问题。通常当您从搜索器中键入的内容从subCV1回到VC1时,它看起来像视图B(下面,中间面板)。使用definesPresentationContext = true
,VC1在从subVC1返回之后最终看起来像视图C(下面,右侧面板)。所有内容都被搜索栏向上移动并隐藏。
对于上面未命名的VC也会发生这种情况,也会导航到subVC1。
我如何弄清楚为什么内容会向上移动以及如何解决?
答案 0 :(得分:1)
我在调查类似的问题时多次看过这篇文章,所以我想在这里发表我的发现。
我的UITableViewHeaderFooterView
是"弹出"在我的搜索结果顶部 - 位于UITableView
- 从ViewController
导航回UISearchController
后一瞬间。
"在顶层酒吧"如上所述在我的Storyboard文件中检查过,但我在代码中声明了definesPresentationContext
。
我发现我需要添加一行,以便标题不再跳转:
extendedLayoutIncludesOpaqueBars = true
definesPresentationContext = true
它阻止了"黑屏"问题和内容转移问题。
答案 1 :(得分:0)