2013-07-13 4 views
3

У меня есть приложение, которое выглядит следующим образом:Как подключить UICollectionViewController в UIContainerView

Storyboard

ViewController является родительским VC, в который я поместил 3 контроллеры вид контейнера.
I подкласса UIViewController для всех трех, сверху, среднего & BottomContainerViewControllers.

Вот мой вопрос. Я хочу, чтобы BottomVC имел UICollectionView, который прокручивается вбок. Поэтому я добавил UICollectionView, как вы можете видеть (дал ему приятный зеленоватый фон).

Но мой вопрос в том, как это сделать?

Это мой BottomContainerViewController.h:

#import <UIKit/UIKit.h> 

@interface BottomContainerViewController : UICollectionViewController <UICollectionViewDataSource, UICollectionViewDelegate> 

@property (nonatomic, retain) IBOutlet UICollectionView *collectionView; 

@end 

И файл .m имеет следующие методы:

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 

Но когда я запускаю его я получаю:

[UICollectionViewController loadView] loaded the "qcP-Hl-Txn-view-aJq-Dc-875" nib but didn't get a UICollectionView.' 

Разъем UICollectionView подключен. Что еще может быть проблемой?

+0

Непонятно, что вы здесь сделали. Если у вас есть UICollectionViewController, он поставляется с представлением коллекции, которое представляет собой его self.view - вы не должны добавлять представление коллекции или нужно создать розетку, у контроллера есть свойство self.collectionView, так же как контроллер табличного представления имеет self.tableView. – rdelmar

+0

Нет, BottomContainerViewController был первоначально UIViewController. – marciokoko

+0

Не имеет значения, что изначально было - ваш код показывает, что BottomContainerViewController является подклассом UICollectionViewController. Если вы изменили это, вы можете просто удалить этот класс и начать все заново. – rdelmar

ответ

5

Создайте класс uiviewcontroller для управления нижним контейнером. Ссылка, как вы обычно использовали бы этот контроллер. Подключить делегат, источник данных, реализовать делегат и источник данных ... и т. Д.

+1

Почему он должен быть UIViewController, а не UICollectionViewController? – marciokoko

+0

Вот чего я не понимаю! – Fattie

3

Я столкнулся с той же проблемой, что и работало для меня:
1: Нажмите кнопку «Показать схему документа» в внизу слева от раскадровки.
2: Найти «Bottom Контейнер View», который должен быть подклассом UICollectionViewController
3: Обрежьте подвиды самого высокого зрения уровня (Все, что вы видите из расширения первого просмотра)
4: Удалить это основной вид и вставить обратно в вашем коллекционном представлении

По сути, вид сверху должен быть UICollectionView, а не обычным UIView, который по умолчанию помечен контейнером в раскадровку.

Смежные вопросы