如何在一个viewController上使用多个搜索栏来访问Swift中的不同JSON数据?

时间:2015-09-14 19:01:09

标签: ios swift cocoa-touch uiviewcontroller uisearchbar

我有一个viewController,上面有3个不同的搜索栏,每个搜索栏旁边都有一个按钮。三个搜索栏适用于不同的类别(即电影,电视节目),当您按下旁边的按钮时,它会根据搜索字段中输入的内容随机查找项目。如果视图控制器中只有一个搜索栏通过将数据附加到数组,我知道如何单独访问JSON数据,但如果同一视图控制器上有多个搜索栏则不知道。 Sample Code for Search and JSON

2 个答案:

答案 0 :(得分:1)

到目前为止,最好的选择是为每个搜索栏设置独立的委托对象。

第二个选项是将三个搜索栏中的每一个保存在自己的属性上,广告在委托方法中区分,如

if searchBar == self.moviesSearchBar {
    //
} else if searchBar == self.tvshowSearchBar{
    //
}

另一种选择是重新考虑用户界面,只有一个searchBar和一个分段控件来切换搜索范围。

答案 1 :(得分:0)

简短答案:使用标签属性(一个整数)来标识每个属性。

长答案:

您可以通过以下方式进行操作 1)Interface Builder的View部分。见图片。 2)以编程方式yourSearchBar.tag =

然后,使用UISearchBarDelegate的func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) searchBar参数确定哪个搜索栏触发了委托调用。

尽管如此,您还是应该遵循SOLID原则。

Tag under View section after clicking on a UISearchBar