当数据源为零

时间:2017-11-22 13:13:08

标签: hide uisearchbar swift4

我想确保当我的表视图的数据源为空时不显示搜索栏。 (有道理,不?不应该是默认行为吗?)

这是我的一段代码,它试图(目前没有注释)不同的东西来完成它,但不知何故它不起作用。

有人可以告诉我我做错了什么吗?如果您需要更多代码段,请与我们联系。

messagesArray=loadMessages()

        DispatchQueue.main.async {
            if (self.messagesArray.count==0){
                self.noMessageview.isHidden=false
                //self.searchController.searchBar.isHidden = true
                //self.searchController.isActive = false
            } else{
                self.noMessageview.isHidden=true
                //self.searchController.searchBar.isHidden = false
                //self.searchController.isActive = true
            }


            self.spinner.stopAnimating()
            self.refreshControl.endRefreshing()
            self.tableView.reloadData()
        }

更新

我声明搜索控制器是这样的:

let searchController = UISearchController(searchResultsController: nil)

在ViewDidLoad中我做了:

navigationItem.searchController = searchController

1 个答案:

答案 0 :(得分:0)

我认为您使用的是iOS 11,因为您从UISearchController设置了navigationItem,因此您可以使用以下代码将其删除:

    if #available(iOS 11.0, *) {
        self.navigationItem.largeTitleDisplayMode = .never;
        self.navigationItem.searchController = nil
    } else {
        // Fallback on earlier versions
        self.navigationItem.titleView = nil
    };

我遇到了一些问题,我认为它的iOS 11错误,在删除UISearchController时,视图无法调整,因此我必须在删除UISearchController之前调用此权限。

self.navigationItem.largeTitleDisplayMode = .never;

多数人。