我有UISearchController在FirstViewController's navigationItem,在SecondViewController中也是一样,我把SecondViewController从FirstViewController推出来。
当用户幻灯片返回时,下面的UI故障是可见的。

包含UISearchController的区域变得模糊。如果用户返回到FirstViewController,它看起来很好。但是,如果用户在滑动了一点之后仍然停留在SecondViewController中,那么这就是它的样子。

拥有searchController的空间现在是空的。如果用户向上或向下滚动,searchController将再次可见。
各种办法试图解决这些问题
viewWillAppear
UITableViewController代替UIViewController,在viewDidLoad中具有UITableViewController navigationItem.hidesSearchBarWhenScrolling属性,在viewWillDisappear
中使用navigationItem.searchController作为nil
除了这个问题,当我在一个UITableView中使用UIViewController时,searchController隐藏在标题下面,它的发布速度略高于本地应用程序,比如消息、邮件。当我使用UITableViewController时,动画是平滑的,但是如果用户没有完全上下滑动,searchController就会被击中一半,如下所示。无论是否有大标题,都会发生这种情况。

如果有人能回答this question,我的使用程序也可以实现。
更新:将extendedLayoutIncludesOpaqueBars设置为SecondViewController中的true确实解决了这个问题。但是在桌面视图中有一个轻微的不想要的冲动,如果用户幻灯片返回,然后改变他/她的想法。

发布于 2019-10-29 13:25:08
请试试这个..。对我来说很管用。我希望这对你也有用。
目标-C
-(void)viewWillDisappear:(BOOL)animated{
if (@available(iOS 13.0, *)) {
[self.navigationController.view setNeedsLayout];
[self.navigationController.view layoutIfNeeded];
}
}Swift
func viewWillDisappear(_ animated: Bool) {
if (@available(iOS 13.0, *)) {
self.navigationController?.view.setNeedsLayout()
self.navigationController?.view.layoutIfNeeded()
}
}如果不能工作,则在推送或显示ViewController时,设置动画NO或false
https://stackoverflow.com/questions/58607024
复制相似问题