내 앱의 테이블에 UITableViewController
을 사용하고 있습니다. 테이블에 표시 할 데이터를 제공하기 위해 NSFetchedResultsController
을 추가했습니다 (대리자로 self
설정).NSFetchedResultsController가 관리하는 UITableView에 여분의 행을 추가하십시오.
그러나 테이블의 마지막 셀에 고유 한 셀을 추가하고 싶습니다. NSFetchedResultsController
의 술어에 의해 생성 된 항목과 관련이 없으므로이 셀이 항상 테이블의 맨 아래에 있도록하고 싶습니다.
- (NSUInteger)numberOfSectionsInTableView:(UITableView *)sender
{
return [[self.fetchedResultsController sections] count] + 1;
}
- (NSUInteger)tableView:(UITableView *)sender numberOfRowsInSection:(NSUInteger)section
{
return [[[self.fetchedResultsController sections] objectAtIndex:section] numberOfObjects] + 1;
}
그리고이 여분의 행 (테이블 만 1 개 섹션이)과 같이 생성되는 경우를 잡기 : 나는 시도했다
단순히 테이블 뷰 데이터 소스에서 이러한 방법에 1을 추가 :- (UITableViewCell *)tableView:(UITableView *)sender
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == [self.fetchedResultsController.fetchedObjects count]) {
//Generate the last cell in table.
} else {
//Generate the rest of the cells like normal.
}
return nil; //To keep the compiler happy.
}
이렇게하면 색인이 마지막 셀인지 확인하고 적절하게 처리합니다.
그러나 나는 아직도 실행시 다음과 같은 오류가 점점 오전 :이 원인을 무엇
*** Terminating app due to uncaught exception 'NSRangeException',
reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
어떤 생각을? 아니면 NSFetchedResultsController에 의해 제어되는 테이블 뷰에 여분의 행을 추가하는 더 좋은 방법이 있습니까?
아, 실제로 구현하는 것이 훨씬 더 좋을 것입니다. 감사합니다. (분명히 나는 여전히 iOS 프로그래밍에 대해 매우 새로운 편이다 .-)) –
예, 매우 해킹 당했다. 이 아이디어는 위대한만큼 간단합니다 ...고마워요! – Shingoo
하지만이 모양은 - http://stackoverflow.com/questions/10965098/nsfetchedresultscontroller-prepend-a-row-or-section –