基本上,我在 TableViewController 中有以下代码,除了一些额外的行之外,它基本上在另一个 CollectionViewController 中重复:
func configureSearchController() {
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search Albums"
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
definesPresentationContext = true
searchController.searchBar.delegate = self
}
为了清理我的两个控制器中的代码,我想将这些方法移动到一个新文件中,如下所示:
class SearchBarManager: UIViewController {
func configureAlbumSearchController(_ searchController: UISearchController, _ navigationItem: UINavigationItem) {
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search Albums"
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
definesPresentationContext = true
}
func configurePhotoSearchController(_ searchController: UISearchController, _ navigationItem: UINavigationItem) {
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search Photos"
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
definesPresentationContext = true
searchController.searchBar.scopeButtonTitles = ["1 Column", "2 Columns", "3 Columns"]
searchController.searchBar.selectedScopeButtonIndex = 2
}}
这是正确的方法吗?我觉得有一种更简单的方法可以简化我想要完成的工作,但我不确定。提前致谢!