Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone开发:允许用户选择搜索范围的最佳方法_Iphone_Uisearchbar - Fatal编程技术网

iPhone开发:允许用户选择搜索范围的最佳方法

iPhone开发:允许用户选择搜索范围的最佳方法,iphone,uisearchbar,Iphone,Uisearchbar,我正在开发我的第一款iPhone应用程序,希望用户能够以比“范围按钮”更复杂的方式选择搜索范围 该应用程序与葡萄酒相关,我希望用户能够首先选择“颜色”红、白、腮红等,然后选择该类别中的类型/品种。现在,我正在使用UISearchBar的范围按钮来选择颜色,点击按钮打开一个包含颜色选择的视图。这没关系,只是一旦选择了“红色”按钮,我就不能再选择它来改变我的类型选择,例如,从“梅洛”改为“锡拉”,等等。如果有更好的方法,我愿意放弃我的方法,从头开始 谢谢 为什么不能再点击一次 它将只使用标准范围栏,

我正在开发我的第一款iPhone应用程序,希望用户能够以比“范围按钮”更复杂的方式选择搜索范围

该应用程序与葡萄酒相关,我希望用户能够首先选择“颜色”红、白、腮红等,然后选择该类别中的类型/品种。现在,我正在使用UISearchBar的范围按钮来选择颜色,点击按钮打开一个包含颜色选择的视图。这没关系,只是一旦选择了“红色”按钮,我就不能再选择它来改变我的类型选择,例如,从“梅洛”改为“锡拉”,等等。如果有更好的方法,我愿意放弃我的方法,从头开始


谢谢

为什么不能再点击一次

它将只使用标准范围栏,每个选项有一个按钮,颜色、类型。等 单击按钮时,弹出UIPickerView,其中包含可能的值。选择值后,在按钮中显示该值


如果只有两种选择,您也可以将一个UIPickerView呈现为两个部分。

有时需要提问才能自己找到答案。我在ViewDidDemouse委托方法中放置了以下行:

[self.searchDisplayController.searchBar setSelectedScopeButtonIndex: -1];
这样做的目的是将当前活动的范围按钮设置为“无”,以便在返回到原始视图时,不会选择任何范围按钮。因此,您可以选择其中任何一个,包括上次选择的。这正是我想做的


我不知道这是否是一个“最佳实践”,但它会起作用。

如果我可以再次单击它,但它不会触发我所知道的事件,那就太好了。除了shouldReloadTableForSearchScope委托方法之外,还有什么方法可以知道作用域按钮被单击的时间吗?顺便说一句:一旦选择了颜色,我就用UIPickerView来选择类型。好的,很高兴听到这个问题已经解决了!使用这样的范围栏可能不是最好的做法。我希望苹果批准这个用户界面设计。当然,还有很多东西需要学习。即使这是可行的,我还是会放弃它,选择一个表来选择以前的“范围”项。不要苹果爸爸对我的创意皱眉!马克,请标记最佳实践,而不是最佳实践。