错误"应用程序尝试在自身上呈现模态视图控制器"在动作上激活UISearchController

时间:2015-07-18 04:34:07

标签: ios swift xcode uisearchcontroller

在我的代码中,这是我设置UISearchController的方式:

searchResultController = storyboard!.instantiateViewControllerWithIdentifier(DBSearchResultControllerIdentifier) as! DBSearchResultController

searchController = UISearchController(searchResultsController: searchResultController)

searchController.searchResultsUpdater = self
searchController.delegate = self

searchResultController.tableView.tableHeaderView = searchController.searchBar
我采取的一些行动是:

@IBAction func cityButtonTapped(sender: UIButton) {
    searchController.active = true
}

但后来我有一个错误:

  

应用程序试图在自身上呈现模态视图控制器。呈现控制器是UISearchController: 0x7f9a0c04a6a0

1 个答案:

答案 0 :(得分:18)

UISearchController的苹果文档清楚地说明了以下内容:

  • active属性设置为YES会执行默认显示 搜索控制器。
  • searchResultsController参数设置为nil以显示 搜索结果与您正在搜索的视图相同。

因此看起来您正在使用当前的视图控制器本身作为searchResultsController,因此当您尝试将active设置为YES时,它会尝试以模态方式呈现您当前的视图,因此错误。