我是Swift的新手,尝试在一个UIViewController
类中的UITableView
中添加搜索功能。我进行了大量谷歌搜索,发现UISearchDisplayController
已被弃用并被UISearchController
替代。当我尝试寻找教程时,没有找到特别针对UITableView
的内容,其中一些仅适用于在UITableViewController
中实现。所以我的问题如下:
我们可以在
UIViewController
类中的UITableView
中实现UISearchController
吗?(我猜我们可以)如果可以,请将这些使用Objective-C编写的代码转换为Swift代码。如果有一些非常好的教程,请让我知道。
@property (strong, nonatomic) UISearchController *searchController;
UITableViewController *searchResultsController = [[UITableViewController alloc] init];
// Init UISearchController with the search results controller
self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];
// Link the search controller
self.searchController.searchResultsUpdater = self;
编辑: 我试图将搜索结果更新器分配为
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UISearchResultsUpdating {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.blackColor()
self.addTableViewWithSection()
self.searchResultsController = UITableViewController()
var controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
}
}
然而,在控制器这一行中,controller.searchResultsUpdater = self,我得到了一个错误,提示无法将 "ViewController" 类型的值分配给 "UISearchResultsUpdating?" 类型的值。 所以我真的怀疑我是否可以在 UIViewController 类型的类中使用 UISearchController。
self.tableView
引用它。但同样,你不需要这样做来填充您的表格视图。 - Andy IbanezmyView.addSubview(searchController.searchBar)
。 - Ariq