UISearchController:searchResultsController 不显示
UISearchController: searchResultsController not displaying
我是 UISearchController 的新手,如果这是一个愚蠢的问题,请原谅。
我尝试关注 问题,但未能获得我想要的结果。
在我的 MapViewController's
viewDidLoad
中,我像这样初始化搜索控制器:
searchController = UISearchController(searchResultsController: customViewController)
其中 customViewController 是 UIViewController 的子类,目前带有一些文本标签(通过界面构建器)。
(我这样声明:let customViewController = MyCustomeViewController()
我试图通过在委托方法中使用 searchController.searchResultsController?.view.isHidden = false
隐藏和取消隐藏 searchResultsController
来遵循上述 link,但没有成功。
结果相同:只有视图变暗。
理想情况下,我希望它类似于 Facebook 的应用程序,当您点击搜索栏时,它会显示不同的视图。
我在委托 willPresentSearchController
中打印了 searchResultsController
对象,它确实将其指示为 MyCustomViewController
。
我是不是遗漏了什么或者这不是正确的方法?
事实证明,要显示的控制器需要是 UITableViewController
或其子类。我尝试了一个里面有 UITableView
的常规 UIViewController
,但没有成功。
我发现@Simon 的回答不正确。我可以使用 UIViewController
作为 searchResultsController
.
我的问题是 searchController 本身是从内存中释放的,因为我没有保留它,在这种情况下,作为 class 范围的实例。
换句话说,
而不是
let searchController = UISearchController(searchResultsController: MySearchResultsController())
...
self.navigationItem.titleView = self.searchController.searchBar
// And add other delegates and stuff
我制作了一个 class-wide global 并做了
private var searchController : UISearchController!
...
self.searchController = UISearchController(searchResultsController: MySearchResultsController())
...
self.navigationItem.titleView = self.searchController.searchBar
// And add other delegates and stuff
我是 UISearchController 的新手,如果这是一个愚蠢的问题,请原谅。
我尝试关注
在我的 MapViewController's
viewDidLoad
中,我像这样初始化搜索控制器:
searchController = UISearchController(searchResultsController: customViewController)
其中 customViewController 是 UIViewController 的子类,目前带有一些文本标签(通过界面构建器)。
(我这样声明:let customViewController = MyCustomeViewController()
我试图通过在委托方法中使用 searchController.searchResultsController?.view.isHidden = false
隐藏和取消隐藏 searchResultsController
来遵循上述 link,但没有成功。
结果相同:只有视图变暗。
理想情况下,我希望它类似于 Facebook 的应用程序,当您点击搜索栏时,它会显示不同的视图。
我在委托 willPresentSearchController
中打印了 searchResultsController
对象,它确实将其指示为 MyCustomViewController
。
我是不是遗漏了什么或者这不是正确的方法?
事实证明,要显示的控制器需要是 UITableViewController
或其子类。我尝试了一个里面有 UITableView
的常规 UIViewController
,但没有成功。
我发现@Simon 的回答不正确。我可以使用 UIViewController
作为 searchResultsController
.
我的问题是 searchController 本身是从内存中释放的,因为我没有保留它,在这种情况下,作为 class 范围的实例。
换句话说,
而不是
let searchController = UISearchController(searchResultsController: MySearchResultsController())
...
self.navigationItem.titleView = self.searchController.searchBar
// And add other delegates and stuff
我制作了一个 class-wide global 并做了
private var searchController : UISearchController!
...
self.searchController = UISearchController(searchResultsController: MySearchResultsController())
...
self.navigationItem.titleView = self.searchController.searchBar
// And add other delegates and stuff