У меня есть полноэкранный UICollectionView
в моем приложении. Он прокручивается горизонтально, и каждая ячейка заполняет границы просмотра коллекции. Просмотр коллекции управляется с помощью UIViewController
.
Учитывая, что каждая "страница" достаточно сложна, для каждой страницы имеет смысл управлять с помощью UIViewController
. iOS 5 поддерживает поддержку контроллера просмотра, так что дочерние контроллеры должны получать соответствующие методы жизненного цикла (например, viewWillAppear:
и т.д.), когда представления подключены и отсоединены. Как приятно это сыграть с переработкой вида?
Прокрутка со страницы "1", до "2", будет создано новое представление (так как оба одновременно могут отображаться на экране во время касания). Перемещение со страницы "2" на "3", UICollectionView
может успешно деактивировать представление для страницы "1", но что происходит сейчас? Могу ли я принудительно вставить представление в контроллер представления три так?
id cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ident" forIndexPath:indexPath];
UIViewController *child_controller = [self controllerAtIndexPath:indexPath];
[child_controller setView:cell];
// ... and so on
Это кажется неправильным. Однако я не могу придумать правильный способ повторного использования представлений в этом случае. Я принимаю неверный подход полностью?