Я думаю, что это, вероятно, просто исправить, но я изо всех сил, чтобы найти правильное решение У меня есть следующие:Назад на Навигационный контроллер вызывает коллекция Просмотреть материалы дублировать
ContactList - в UICollectionView
, который загружает содержимое с viewDidAppear:
способ. Когда элемент выбран в виде коллекции, я запускаю этот метод:
[self performSegueWithIdentifier:@"pushContactDetail" sender:self];
Пока все хорошо. Все отлично работает. Однако, когда я перемещаюсь с страницы ContactDetail с помощью кнопки контроллера навигации, ContactList дублирует содержимое.
Есть ли что-то, что я должен был сделать, чтобы предотвратить перезапуск viewDidAppear:
?
Я не думаю, что я хочу, чтобы установить коллекцию до нуля, когда я нажимаю на страницу ContactDetail, как бы привести содержание будет перезагружена каждый раз ...
Вот код:
-(void) viewDidAppear
{
[super viewDidAppear];
[self.view setBackgroundColor:myColorLightGrey];
_contactList = [[NSMutableArray alloc] init];
[self displayLoadingAndDisableTableViewInteractions];
[self queryData];
}
- (void) queryData
{
//Find the Data
PFQuery *query = [PFUser query];
PFUser *consumer = [PFUser currentUser];
[query includeKey:User_followers];
[query whereKey:@"email" equalTo:consumer.email];
query.maxCacheAge = 60 * 60 * 24; // One day, in seconds
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
for (PFUser *tmpConsumer in objects)
{
for (PFUser *publisher in [tmpConsumer objectForKey:User_followers])
{
[_contactList addObject:publisher];
}
}
[_collectionView reloadData];
[self hideLoadingAndEnableTableViewInteractions];
}];
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"contactCell";
ContactCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
//SNIPPED REMAINDER OF CODE
...
}
Есть ли причина, по которой вы не загружаете контент в viewDidLoad? – rdelmar
Хороший вопрос. Мне нужно регулярно обновлять контент. Лучший способ, который я нашел, - это поместить его в viewdidappear. Кроме того, если я удалю элемент на странице подробностей, я хочу, чтобы список обновлялся. смысл? – mday
Вы не можете вызвать viewDidAppear. Покажите свой код. Проверьте, загружен ли он. Переместить в viewFidLoad. – Wain