Относительно реализации многокомпонентного зависимого uipickerview - PullRequest
3 голосов
/ 20 июня 2010

У меня проблемы с пониманием концепции многокомпонентных uipickerviews.Я действительно хотел бы СОБСТВЕННО эту тему.Я хотел бы сделать 4-компонентный сборщик с компонентами, которые зависят друг от друга.

Первый компонент заполняется из массива из моей базы данных, и это хорошо.У меня есть вся другая информация, доступная в массивах, но я просто зацикливаюсь на зависимом аспекте моего выбора.Я полагаю, что лучший способ сделать так, чтобы данные компонента 2 зависели от комп 1, - это как-то связать их в разделе didSelectRow.Но я не знаю синтаксиса.

Я работаю над этим уже несколько часов и чувствую, что я действительно близок, но мне просто нужна помощь с некоторыми проблемами.Каков синтаксис для соединения компонентов, чтобы они зависели друг от друга?Что-то вроде этого?(Это ужасно, я знаю, но я думаю, что это направление, которое мне нужно получить):

if(picker = pickerComponent1)
     //set number of rows for comp2 and also the content etc...

Другая проблема заключается в определении бита numberOfRowsInComponent, потому что они не в том же методе ...

Если кто-нибудь знает (или хочет дать :) учебник на эту тему, это было бы очень полезно!Или, если вы разбираетесь в этой теме и хотели бы поделиться тем, что знаете, это тоже было бы идеально.Мне бы очень хотелось, чтобы эта, казалось бы, простая задача была выполнена.

1 Ответ

3 голосов
/ 20 июня 2010

Это довольно просто. В методе pickerView:didSelectRow:inComponent: просто вызовите [myPicker reloadComponent:] для всех компонентов, следующих за тем, где выбор был изменен. Затем средство выбора автоматически запросит у своего источника данных (предположительно, вашего контроллера представления) количество строк и их значения.

Затем в pickerView:numberOfRowsInComponent: и pickerView:titleForRow:forComponent: вернуть соответствующие значения (количество и содержимое соответствующего массива) в зависимости от значений выбранных строк родительских компонентов.

...