首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISearchController黑屏

UISearchController黑屏
EN

Stack Overflow用户
提问于 2017-06-18 21:29:58
回答 2查看 1.6K关注 0票数 1

我已经看过这个问题的其他答案,但他们没有解决我的问题。

这是我的故事板设置:

在我的UITableViewController中,如果我设置了self.definesPresentationContext = true,那么搜索栏将出现在每个选项卡上。如果我不这样做,那么在单击搜索,然后切换到另一个选项卡并切换回来后,表格将变为黑色。

解决方法1:关闭searchController或在viewWillDisappear中将isActive设置为false。

问题:每次我来回切换时,搜索栏都会从顶部向下推:

解决方法2:设置searchController.searchBar.isHidden = true

问题:在我的另一个也使用UISearchController的选项卡中,由于另一个搜索栏已经存在(但被隐藏),所以无法显示范围:Attempt to present <UISearchController: 0x7ff81ac0aa30> on <xxx.ViewController: 0x7ff81ac0a6f0> which is already presenting (null)

EN

回答 2

Stack Overflow用户

发布于 2017-06-19 10:27:05

我遇到了同样的问题,并且得到了修复,正确地处理了definesPresentationContext,所以我只需在viewDidAppear中将此属性定义为true,并在viewWillDisappear中将其设置为false

代码语言:javascript
复制
override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        if(self.searchController == nil)
        {
            self.setupSearchBar()
        }else{
            self.definesPresentationContext = true
        }
    }

override func viewWillDisappear(_ animated: Bool) {
    self.searchController!.isActive = false
    self.searchController!.searchBar.removeFromSuperview()
    self.definesPresentationContext = false
    if(self.showingSearchBar)
    {
        self.rigthNavBarButtonAction()
    }
    super.viewWillDisappear(animated)
}

我希望这对你有帮助

票数 1
EN

Stack Overflow用户

发布于 2017-09-21 09:13:32

使用您的变通方法1,在viewDidAppear中设置self.searchController!.isActive = true实现了魔术。不过,您还需要恢复搜索栏文本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44615506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档