Так что я создаю UISegmentedControl
, который я помещаю в дополнительное представление для коллекции. Затем я использую этот сегментированный элемент управления через делегат на нем IBAction
, чтобы установить свойство типа BOOL на моем UICollectionViewController
, которое соответствующим образом изменяет данные, отправляемые из одного потока в другой. Кажется, что все это работает, так как когда я нажимаю вторую вкладку после загрузки представления коллекции (которая загружается с выбранной первой вкладкой и правильных данных для первой вкладки), появляются правильные данные, но мой дополнительный вид исчезает !UICollectionView скрывает мой дополнительный взгляд, почему?
Что странно это:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
Этот метод правильно называют, и я правильно устанавливая размер моего дополнительного зрения, и я могу видеть это в моем тренажере, так как мои данные компенсировано размер моего дополнительного взгляда. Что не вызывается, однако, этот метод:
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
Этот метод вызывается только когда мой взгляд коллекция загружена, таким образом, загрузки исходного сегментированный контроллера, но никогда не вызывается снова, даже если я звоню reloadData
на метод collectionView и метод размера, упомянутый выше, вызываются снова.
Теперь, чтобы добавить еще один поворот, я прошел и поставить точку останова в одном из методов перезагрузки вида сбора, и сделал:
po [self.view recursiveDescription]
В отладчике, чтобы узнать, если мой сегментированный вид контроллера все еще там, и это! Она имеет свой скрытый флаг установлен в YES, хотя ...
baseClass = UICollectionReusableView; frame = (0 0; 320 55); hidden = YES; layer = <CALayer: 0xef4bd30>
Как получить эту точку зрения, чтобы не быть скрыты, когда только ссылка у меня есть к нему в методе, называемом:
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
и этот метод даже не называется этим вторым временем?