与以编程方式创建的UISearchController的交互阻止了iOS 9

时间:2015-08-28 13:27:41

标签: ios swift uitableview uisearchcontroller

以下是我制作的UISearchController

var resultSearchController = UISearchController()
var myTableView = UITableView()

override func viewDidLoad() {
    super.viewDidLoad()

    myTableView.frame = CGRectMake(0, 21, view.bounds.width, view.bounds.height-20) //programatically made my tableview for use with UISearchController
    myTableView.delegate = self
    myTableView.dataSource = self

    myTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")

    self.resultSearchController = ({
        let controller = UISearchController(searchResultsController: nil)
        controller.searchResultsUpdater = self
        controller.searchBar.delegate = self
        controller.dimsBackgroundDuringPresentation = false
        controller.searchBar.sizeToFit()
        controller.searchBar.userInteractionEnabled = true
        controller.searchBar.hidden = false

        self.myTableView.tableHeaderView = controller.searchBar // attach searchBar to tableView

        return controller
    })()

    UIApplication.sharedApplication().keyWindow?.addSubview(myTableView) //put view on top of navigation bar

类似的问题表明父母的观点不够大。我不认为这是一个问题。还有人建议SearchController被另一个视图覆盖。再说一遍,我不认为这是问题。

我可以与我的tableView进行互动。当我点击SearchBar时,没有任何反应。发生了什么事?

这是我的应用程序。

My app

编辑:这是我发布的答案后的应用程序:

app bug

1 个答案:

答案 0 :(得分:0)

我找到了一个可能对你有帮助的解决方案。

替换它:

UIApplication.sharedApplication().keyWindow?.addSubview(myTableView)

有了这个:

UIApplication.sharedApplication().keyWindow?.subviews.last?.addSubview(myTableView)