我是Swift的新手,在一个控制器中开发了一个带有词汇表的应用程序,其中包含一个搜索栏和通过UISearchBarDelegate关联的方法。我想在其他控制器中使用完全相同的方法。
我已经将词汇表数据放在一个单例中,但是如何在不复制所有方法的情况下使用搜索方法。我可以简单地让其他控制器继承我的GlossaryController吗?但协议怎么样?
答案 0 :(得分:0)
你可以创建一个新的swift文件并将你的方法放在那里。然后,您可以从任何其他文件访问它们......
答案 1 :(得分:0)
@Sotiris: 究竟。我从搜索委托中覆盖了几个方法,比如
// MARK: - Search Bar delegate
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { }
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) { }
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { }
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { }
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {}
当我的控制器实现UISearchBarDelegate时,他们需要覆盖这些方法(或其中一些方法)。 如果我创建一个实现委托并重写这些方法的类,我可以在控制器中调用这个新类,而不需要再实现UISearchBarDelegate。