2010-05-01 2 views
2

Я разрабатываю свое первое приложение для iPhone и хочу, чтобы пользователь мог выбрать область поиска в более сложном виде, чем разрешение «кнопки сферы».Разработка iPhone: лучший способ, позволяющий пользователю выбирать область поиска

Приложение связано с винами, и я хочу, чтобы пользователь мог сначала выбрать «цвет» (красный, белый, румянец и т. Д.), А затем выбрать тип/сортов в этой категории. Прямо сейчас, я использую кнопки области видимости UISearchBar для цветов, а нажатие кнопки открывает представление с выбором цветов. Это нормально, за исключением того, что после того, как была выбрана кнопка «Красный», я не могу выбрать ее во второй раз, чтобы изменить свой выбор типа (например, изменить с «Мерло» на «Сирра» и т. Д.). Если есть более способ сделать это, я готов отказаться от моего метода и начать с нуля.

Спасибо!

+0

Марк, пожалуйста, пометьте «лучшие практики», а не «лучшие», «практики». –

ответ

1

Почему вы не можете щелкнуть по нему второй раз?

Он будет использовать стандартную панель видимости с одной кнопкой на выбор (цвет, тип и т. Д.). При нажатии кнопки выведите UIPickerView с возможными значениями. Когда выбрано значение, отобразите его в кнопке.

Если есть только два варианта, вы также можете представить один UIPickerView с двумя сегментами.

+0

Было бы здорово, если бы я второй раз щелкнул по нему, но он не запускает событие, о котором я знаю. Есть ли что-то помимо метода делегирования «shouldReloadTableForSearchScope», чтобы узнать, когда были нажаты кнопки области видимости? BTW: Я использую UIPickerView для выбора типов после выбора цвета. –

1

Иногда возникает вопрос, почему ответ приходит к вам самостоятельно. Я положил следующую строку в «viewDidDisappear» метод делегата:

[self.searchDisplayController.searchBar setSelectedScopeButtonIndex: -1]; 

Что это делает, чтобы установить кнопку в настоящее время активной области, чтобы «ничего», так что, когда вы вернуться к первоначальному виду, ни одна из кнопок области видимости . Таким образом, вы можете выбрать любой из них, включая тот, который вы выбрали в последний раз. Это именно то, что я хотел сделать.

Я не знаю, является ли это «лучшей практикой», но она будет служить.

+0

Хорошо, приятно слышать, что это было решено! Возможно, не самая лучшая практика использовать панель видимости, как это действительно. Надеюсь, Apple одобрит этот дизайн пользовательского интерфейса. – Rengers

+0

Еще многое узнать, если быть уверенным. Несмотря на то, что это работает, я собираюсь отказаться от него в пользу таблицы, чтобы выбрать то, что было «областью». Не хочу, чтобы папа-яблоко хмурился над моим детищем! –