2012-02-11 5 views
0

UITableViewController에 표 내용을로드 할 때이 문제가 있습니다. 나는 xib없이 UITableViewController을 만들었습니다. loadView에서 표시 할 데이터 배열을 생성하는 함수를 호출하고 있습니다. 그리고 그 배열에서 tableView:cellForRowAtIndexPath: 나는 세포를로드하려고합니다. 그러나 어쨌든 나는 테이블 위에 아무것도 얻지 못하고있다. 그 외에도 콜에 대해 중단 점을 설정하면 호출되지 않는 것 같습니다. 아무도 내가 여기서 잘못하고 있다고 말할 수 있습니까?언제 -tableView : cellForRowAtIndexPath : get called?

+1

'loadView' 메소드의 코드가 약간 도움이 될 것입니다. 그것 이외에 - 일단 당신이 테이블에'reloadData'를 호출 해보십시오. – Eimantas

+1

당신의 tableView 델리게이트의'numberOfSectionsInTableView'와'numberOfRowsInSection :'메소드로부터 올바른 값을 반환하고 있습니까? – jonkroll

+0

아니요. 행 수가 0이됩니다. – slonkar

답변

4

-tableView:cellForRowAtIndexPath:은 처음에 셀을 채울 때 또는 새 셀을 화면으로 스크롤 할 때 호출됩니다. 그러나 적절한 수의 섹션을 반환하지 않으면 절대로 호출되지 않습니다 테이블보기의 행은 기본적으로 0입니다.

그것을 할 때마다 새로운 세포라는 방법입니다 ... cellForRowAtIndexPath 방법 : eimantas 말했듯이

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [yourArray count]; 
} 
+0

numberOfRowsInSection을 호출하면 배열이 비어 있다고 생각합니다. 어떻게 행 수가 호출되기 전에 배열을 만들 수 있습니까? – slonkar

+0

필요가 없습니다. 배열이 준비되면'[self.tableView reloadData];를 호출하면된다. –

0

테이블을 작성할 때 cellforrowatindexpath가 호출됩니다. 테이블의 대리자를 self로 설정 했습니까? .h에 추가 했습니까?

+2

설정해야하는 것은 dataSource입니다. 대리인은 행 선택을 담당하며 표시는하지 않습니다. – Eimantas

+0

내 .h는 다음과 같은 클래스 이름입니다 : UITableViewController {} – slonkar

+0

'UITableViewController' 서브 클래스를 생성했다면 delegate와 dataSource가 이미 올바르게 설정되어 있습니다. 섹션과 행의 올바른 수를 반환하고' [self.tbleView reloadData];'데이터 소스를 업데이트하면 (배열의 객체 추가/제거/변경). –

0

, 당신은있는 tableView에 yourClass을 = (가리키는) 당신의 jQuery과의 "는 dataSource"대리자를 설정해야 (테이블을 처음 볼 때 테이블 높이의 전체 높이를 차지하는 데 필요한 수의 셀을 생성합니다.) 사용자가 테이블을 스크롤 할 때 호출됩니다 (새 셀을 만들지 않고 이전 셀을 새로운 데이터 필요)

관련 문제