Я не знаю, что происходит, но мой UICollectionView не перезагружается автоматически из другого класса.
У меня есть UICollectionView в классе 1, и я обновляю данные в нем, вызывая новый массив из класса 2.
class1:
In view DidLoad
UICollectionViewFlowLayout *aFlowLayout = [[UICollectionViewFlowLayout alloc] init];
[aFlowLayout setItemSize:CGSizeMake(self.view.frame.size.width/2 - 15, self.view.frame.size.height/3 - 30)];
[aFlowLayout setSectionInset:UIEdgeInsetsMake(10,10,10,10)];
[aFlowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height) collectionViewLayout:aFlowLayout];
[self.collectionView registerClass:[searchedPersonsCell class] forCellWithReuseIdentifier:@"SongCell"];
[self.collectionView setBackgroundColor:[UIColor clearColor]];
self.collectionView.delegate = self;
self.collectionView.dataSource=self;
self.collectionView.scrollEnabled=YES;
self.collectionView.alwaysBounceVertical=YES;
[self.view addSubview:self.collectionView];
[self.collectionView performSelector:@selector(reloadData) withObject:nil afterDelay:0];
-(void) reloadPersonsData:(NSMutableArray*)newArray
{
NSLog(@"success");
self.personsArray =newArray;
dispatch_async(dispatch_get_main_queue(), ^{
[self.collectionView reloadData];
[self.collectionView performSelector:@selector(reloadData) withObject:nil afterDelay:0];
[self.collectionView setNeedsDisplay];
[self.collectionView setNeedsLayout];
[CATransaction flush];
// [NSTimer scheduledTimerWithTimeInterval:0.3 target:self.collectionView selector:@selector(reload) userInfo:nil repeats:NO];
//tried all the above
});
}
когда пользователь запрашивает больше людей, я получаю доступ к классу 2 по протоколу,
Сейчас во 2 классе:
Я получаю новый массив, передавая его в массив свойств в классе 1 (он успешно передан, и я проверил его из отладки), затем вызываю функцию reloadPersonsData из класса 2 в класс 1 (выводится «успех» nslog, поэтому он обращается к методу. Но Ничего не произошло!! numberOfItemsInSection или numberOfsection не вызываются!! и представление коллекции не обновляется
Странная вещь, если я вызываю тот же метод reloadPersonsData внутри class1 с помощью кнопки, я обновляю UiCollectionView!!! так что же здесь не так? почему он не перезагружается при вызове из другого класса, кто-нибудь может мне помочь?
Спасибо