Ios UISearchController UITableView旋转显示

Ios UISearchController UITableView旋转显示,ios,uitableview,swift,rotation,uisearchcontroller,Ios,Uitableview,Swift,Rotation,Uisearchcontroller,我已经用UITableView实现了一个UISearchController,它工作得很好,但是在rotate上有一个问题 因此,如果我在纵向模式下将焦点放在搜索栏上,然后在保持焦点的同时旋转,问题就出在这里: 聚焦时将纵向模式切换为横向模式 我需要取消,以便很好地返回搜索栏显示。 同样,如果我在横向模式下将焦点放在搜索栏上,然后在保持焦点的同时旋转,问题就出在这里: 聚焦时横向模式转换为纵向模式 您可以看到搜索栏不喜欢旋转。 这可能是什么原因造成的,以及如何修复? @IBOutlet we

我已经用UITableView实现了一个UISearchController,它工作得很好,但是在rotate上有一个问题

因此,如果我在纵向模式下将焦点放在搜索栏上,然后在保持焦点的同时旋转,问题就出在这里:

聚焦时将纵向模式切换为横向模式

我需要取消,以便很好地返回搜索栏显示。 同样,如果我在横向模式下将焦点放在搜索栏上,然后在保持焦点的同时旋转,问题就出在这里:

聚焦时横向模式转换为纵向模式

您可以看到搜索栏不喜欢旋转。 这可能是什么原因造成的,以及如何修复?

@IBOutlet weak var locationTable: UITableView!

var locationSearchController = UISearchController()

override func viewDidLoad() {
    super.viewDidLoad()

    self.locationTable.delegate = self
    self.locationTable.dataSource = self

    self.locationSearchController = ({

        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.hidesNavigationBarDuringPresentation = false
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.searchBarStyle = .Minimal
        controller.searchBar.sizeToFit()
        controller.definesPresentationContext = true;
        self.locationTable.tableHeaderView = controller.searchBar

        return controller
    })()
}
我还没有遇到这个问题,但对于类似的UISearchController,我发现在横向视图中将表放在错误的位置,向父控制器添加以下内容可以解决这个问题(对不起,Objective-C)


你找到解决办法了吗?我就像你一样被困住了,没有运气。到目前为止,我所做的只是尽可能深入地调试了视图,我发现当旋转时,整个搜索栏会被UIView替换一会儿,然后又回到搜索栏,它在视图层次结构中留下了某种工件,扩展了表视图的标题,以至于我们可以在搜索栏上方看到这个间隙1/2在我看来,搜索栏似乎在试图为
范围按钮
留出足够的空间,但我不能肯定,因为这种差距的高度有时会有所不同,这使得理解这个问题更加困难。我尝试过几乎任何没有运气的东西,它看起来像一个虫子,而且是一个非常糟糕的虫子。我不能在我的应用程序中使用它,我必须考虑其他一些事情。2/2
self.edgesForExtendedLayout = UIRectEdgeAll;
self.extendedLayoutIncludesOpaqueBars = YES;