문제

내 생각에 이것은 아마 간단한 해결지만,나를 찾기 위해 고군분투 올바른 솔루션 나는 다음과 같다:

ContactList-a 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
    ...
}
도움이 되었습니까?

해결책

queryData 방법,nil 밖으로 배열 첫째

_contactList = nil;
_contactList = [NSMutableArray array]; // or [[NSMutableArray alloc] init];

이동 alloc/init 방법 _contactList 다음과 같다:

- (void) queryData
{    
    _contactList = nil;
    _contactList = [[NSMutablArray alloc] init];

    //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];
    }];
}

다른 팁

탐색으로 다시 애니메이션이 사실이다.그것이 문제를 해결합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top