UILabel в пользовательском UICollectionViewCell всегда имеет значение null, не может обновлять текст

Я создал представление коллекции очень просто для проекта образца коллекции коллекции Apple. У меня есть представление коллекции в контроллере представления в раскадровке и установите метку внутри ячейки представления коллекции в верхней правой части представления коллекции. Я подключил это к IBOutlet в своей пользовательской ячейке. Вот соответствующий код:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"];
    ...
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    if (collectionView == self.collView) {
        Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];    
        cell.segmentTitle.text = @"some text";
        cell.backgroundColor = [UIColor whiteColor];
        return cell;
    }
    return nil;
}

Я поставил точку останова после части segmentTitle.text, а segmentTitle всегда равно null. Соответственно, то, что я вижу в симуляторе, - это пустые белые ящики. Что я пропустил?

Ответ 1

UICollectionViewCell внутри StoryBoard не требуется registerClass, просто выберите reuseidentifier в StoryBoard. Удалить эту строку:

   // [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"];

И убедитесь, что вы правильно подключаетесь:

-Выберите класс типа UICollectionViewCell в storyBoard to Cell

-Drag UILabel в ячейку и подключитесь к Cell.h

-Выполнить идентификатор повторного использования

Ответ 2

MainFeedCollectionView.registerClass(CollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")

Я удалил эту строку из своего кода, теперь теперь отлично работает...