Я начну свой вопрос, заявив, что я пытаюсь сделать в своем приложении:
Я пытаюсь создать экран «выбора» документа, похожий на «Страницы» или «Номера» на iPad, что-то похожее на это:
Я хотел бы иметь UIScrollView
, в который я добавляю подпредставления; эти подпредставления могут иметь элементы управления, такие как сегментированный элемент управления «Сортировка» даты / имени в Pages / Numbers, или они могут быть изображениями документов. Неважно, что отображают подпредставления - я хотел бы, чтобы подпредставления были представлениями с поддержкой UIViewControllers
. Здесь начинается мое замешательство.
Видите, я изначально пытался построить экран выбора документов, используя UITableView
. По разным причинам, выходящим за рамки этого вопроса, это не сработало. В рамках этой работы я создал UITableViewCell
подклассы (и сопровождающие XIB) в соответствии с этого руководства (Создание пользовательского UITableViewCell в iOS 4) . Я подумал, что это здорово - у меня есть представления, которые я могу показать в UITableView
, и у меня есть способ получить события из этих представлений таким способом (sortTypeChanged
реагирует на изменение выбора в моем Дата / Имя сегментированного контроля):
@interface DocSortViewController : UITableViewCell {
}
-(IBAction)sortTypeChanged:(id)sender;
@end
Все было хорошо, пока я не понял, что UITableView
не получит мне то, что я хотел. Поэтому я отказался от него в пользу UIScrollVIew
. Тем не менее, именно здесь мои нынешние знания меня подводят. "использовать контроллер представления / представление XIB" парадигма для пользовательского UITableViewCells
, похоже, не работает для UIScrollViews
.
Я не могу понять, как создать отдельный контроллер представления и сопровождающий XIB, который я могу загрузить и отобразить в моем UIScrollView
. Попытки загрузить XIB через UINib.instantiateWithOwner
и добавить свойство view
контроллера представления в качестве сбоя подпредставления. Я не уверен почему.
Что меня беспокоит, так это то, что мне кажется, что я в корне не понимаю, как работают контроллеры / представления. Особенно в сочетании с UIScrollViews
.
Чего мне не хватает? Кто-нибудь пытался сделать что-то похожее на это? Есть ли рекомендуемая лучшая практика для этого? Если вы не должны загружать контроллеры / XIB представления в UIScrollViews
, что вы тогда должны делать? Как бы вы получили события от элементов управления на подвиды, проживающие в UIScrollView
?
Редактировать: Я должен добавить, что часть моей проблемы заключается в том, что я смотрю на это через призму WPF, где, используя шаблон MVVM, вы создадите полное представление, составив его меньших представлений, каждый со своей собственной моделью представления назад. Реально ли воспроизвести это в iOS? Или это не очень рекомендуется?