Добавление UIPickerViews в представление с другими элементами - PullRequest
0 голосов
/ 04 июня 2010

Newbie Cocoa Touch вопрос:

Я стремлюсь к интерфейсу с UIPickerView и UIButton.

Средство выбора нуждается в делегате и источнике данных, которые я изначально написал как отдельный класс PickerController, реализующий правильные протоколы. Однако теперь я не уверен, как использовать интерфейсный конструктор для связывания всего.

Если у меня есть отдельный файл .xib для PickerController (с только UIPickerView в нем), и я добавляю представление PickerController как подпредставление в главном контроллере, UIPickerView отображается правильно, но UIButton (который находится в основной файл .xib) нет. Это как если бы добавить представление PickerController, занимающее все окно и скрывающее главное представление.

Я попытался избавиться от отдельного файла .xib и вместо этого добавить UIPickerView непосредственно в основной файл .xib. Однако с этой конфигурацией я не уверен, как настроить делегат и источник данных, поскольку владелец файла (основной контроллер) отличается от класса <UIPickerViewDataSource, UIPickerViewDelegate>, который я написал (PickerController).

Будет полезна некоторая помощь по следующим вопросам:

  • у меня должен быть отдельный класс для UIPickerView?
  • у меня должен быть отдельный файл .xib для каждого UIPickerView?
  • если делегат и источник данных находятся в другом классе с владельцем файла, как мне их соединить?
  • можно ли добавить подпредставление к основному виду, чтобы оно не мешало элементам основного вида / не закрывало их?

1 Ответ

1 голос
/ 04 июня 2010

Можно делать то, что вы хотите, но это выходит далеко за пределы самого быстрого пути, чтобы достичь желаемого результата.Если вы новичок, я бы пока придерживался простых путей, потому что Cocoa Touch уже достаточно для изучения.

Итак.Самый быстрый путь - создать подкласс основного представления класса PickerController.Затем вы можете создать свой IB-файл, использовать класс основного представления в качестве владельца файла и подключить источники данных и делегатов.

Я предполагаю, что из вашей оценки StackOverflow вы являетесь опытным разработчиком, которыйначиная с iPhone Dev.Вышеупомянутый самый быстрый подход, вероятно, будет пахнуть смешно, потому что подклассификация не очень правильнаяТакое чувство, что вы должны иметь возможность комбинировать контроллеры, смешивая их вместе для создания пользовательского интерфейса.И это возможно, но в конечном итоге это большая работа и немного головной боли, если вы только начинаете.Я обнаружил, что эстетическая отдача от более элегантного подхода в большинстве случаев не стоит дополнительных усилий.

...