2012-11-10 1 views
1

위임 메서드를 사용하여 UITableView를 채우고 있습니다. 어떤 조건에서는 나는 어떤 세포도 돌려주고 싶지 않습니다. 그러나 다음 대리자 함수를 반환 형식으로 UITableViewCell 정의해야합니다. 반환하는 nil이 작동하지 않습니다 (코드 예제의 스위치 사례 참조).테이블보기 채우기 - 특정 조건에서 셀을 반환하지 않는 방법

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"]; 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"UITableViewCell"]; 

    switch (indexPath.section){ 
     case 0: 
       switch (indexPath.row){ 
        case 0: 
         if ([eventItemObject eventDescription]){ 
          return cell; 
         } else { 
          return nil; 
         } 
         break; 
         ... 
        default: 
        break; 
       } 
      break; 
      ... 
     default: 
     break; 
    } 

    return cell; 
} 

특정 조건에서 셀을 반환하지 않는 방법은 무엇입니까?

답변

4

나는 이런 식으로 할 수 없다고 생각한다. cellForRow 메서드에서 UITableViewCell 인스턴스를 반환해야합니다.

tableView:numberOfRowsInSection 메서드를 편집 해보세요. 귀하의 조건에 따라 올바른 번호 만 반환하십시오.

1

이 난 당신이 [eventItemObject eventDescription] 거짓 반환 모든 항목을 제거하려면 배열을 필터링 한 다음 테이블을 채우기 위해 그 필터링 된 배열을 사용할 필요가 생각하는 tableView:numberOfRowsInSection 또는 numberOfSectionsInTableView:tableView

+0

글쎄, 그건 의미가있다. 오, 아뇨,하지만 스위치 문제의 숫자가 더 이상 맞지 않는다는 문제가 있습니다. Noooo ... – Bernd

+0

실제로 NSArray에서 데이터를 읽을 지 결정할 여러 섹션이있는 경우에도 여전히 사용해야합니다. – Kassem

1

를 사용하여 일해야 . 이렇게하면 numberOfRowsInSection 및/또는 numberOfSectionsInTableView가 올바른 숫자를 반환합니다.

관련 문제