2012-12-25 3 views
0

매우 이상한 문제입니다. 나는 스토리 보드 사용자 정의 셀 양식 UITableViewController 있습니다. 어떤 이유로 셀이 내 TableView에 표시되지 않습니다. 일부 중단 점과 일부 로그 메시지를 넣었고 데이터를 가져올 수 있다고 말하면 셀에 메모리 주소가 있다는 것을 알 수 있습니다. 나는 그 밖의 무엇을 확인해야할지 모르겠습니다.UITableViewCell이 할당되었지만 표시되지 않습니다.

일부 이유 때문에 UPDATE 셀의 숨김 속성이 YES로 설정되어 있으므로 cell.hidden = NO를 추가했지만 여전히 나타나지 않습니다.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
NSString *CellIdentifier; 
if(indexPath.section == 0) { 
    CellIdentifier = @"HeaderCell"; 
} else { 
    CellIdentifier = @"ConnectedGoalCell"; 
} 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

if(indexPath.section == 0) { 
//Section 0 Formatting.....displays OK 
} else { 
//This is the cell that doesn't appear in the tableView 

    UILabel * nameLabel = (UILabel*)[cell viewWithTag:10]; 
    UILabel * dateLabel = (UILabel*)[cell viewWithTag:11]; 

    NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; 
    formatter.timeZone = [NSTimeZone defaultTimeZone]; 
    [formatter setDateFormat:@"MM/dd/yyyy"]; 
    Goal * goal = [connectedGoals objectAtIndex:indexPath.row]; 
    nameLabel.text = goal.name; 
    dateLabel.text = [formatter stringFromDate:goal.goal_date]; 
    //Log said that cell HIDDEN was YES. Changed to no here but still no effect 
    //<UITableViewCell: 0xa288e30; frame = (0 389; 320 44); autoresize = W; layer = <CALayer: 0xa292a80> 
    cell.hidden = NO; 
    NSLog(@"CELL TYPE : %@ AT %@", indexPath, CellIdentifier); 
    //Logs:: CELL TYPE : <NSIndexPath 0xc3917d0> 2 indexes [1, 0] AT ConnectedGoalCell 

    NSLog(@"%@", cell); 
    //Logs:: CELL TYPE : <UITableViewCell: 0xc195ba0; frame = (0 389; 320 44); hidden = YES; autoresize = W; layer = <CALayer: 0xc171620> 

} 

return cell; 
} 
+0

'ConnectedGoalCell'의 숨겨진 속성을 확인하십시오. 그것은 숨겨져 있습니다. – Ilanchezhian

+0

내 질문이 업데이트되었습니다. 감사합니다. 분명히 관련이 있지만 내 문제를 해결하지 않는 것. – ChickensDontClap

답변

0

로그

세포 유형 읽기 :있는 UITableViewCell : 0xc195ba0을; frame = (0 389; 320 44); 숨김 = 예; 자동 크기 조정 = W;

나는 그것이 왜 숨겨 졌는지 알지 못하지만 분명히해서는 안됩니다. 당신이 말에있는 register*:forCellReuseIdentifier 중 하나 viewDidLoad를 호출해야합니다 의미합니다 (dequeueReusableCellWithIdentifier: 방법에 반대하고 nil 검사로)

cell.hidden = NO; 
+0

잡기에 감사드립니다. 어떻게 그것이 Hidden으로 설정 되었을지 모르겠다. Storyboard에서 그렇게하지 않았다. 여전히 효과가 없습니다. 셀은 표시되지 않지만 셀에 필요한 공간이 표시됩니다. 셀을 보이지 않게 만드는 다른 속성이있을 수 있습니까? – ChickensDontClap

0

당신은 dequeueReusableCellWithIdentifier:forIndexPath: 방법을 사용하고 있습니다. 중요

: 워드 프로세서에서이 메서드를 호출하기 전에 registerNib:forCellReuseIdentifier: 또는 registerClass:forCellReuseIdentifier: 방법을 사용하여 클래스 또는 펜촉 파일을 등록해야합니다.

+0

내 스토리 보드에 셀이 정의되어 있으므로 내 컴퓨터가 제대로 보이지 않지만이 단계가 궁금합니다. – ChickensDontClap

1

내 스토리 보드 다시 설치 내 사용자 정의보기에 새 TableViewController을 만들 필요까지 종료하고 모든 내 사용자 지정 세포 중 하나는 약 20 버튼이 지금 작동하고 다행히 나는 할 수 있었다 및 붙여 넣기보다는 필요 지겨운 마음으로 다시 만들어야합니다. 아주 이상한 오류가 있지만 지금은 작동 중!

관련 문제