2015-07-09 3 views
0

У меня есть заголовок UITableView, такой как Instagram, где мой раздел выступает в заголовке, в этом представлении таблицы я также использую пейджинг для получения данных с сервера.Индексная секция в viewForHeaderInSection

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 

    if (currentPage == 0) { 
     return 1; 

    } 

    if (currentPage < totalPages) { 
     return myObject.count+1; 
    } 

    return myObject.count; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
// Return the number of rows in the section. 
    return 1; 

} 

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection (NSInteger)section 

{ 

    myTimeline = [myObject objectAtIndex:section]; 
    //the rest of my code to display text in UILabel cell, etc 

} 

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

    if (cell.tag == kLoadingCellTag) { 
    currentPage++; 
    [self getTimeline]; 
    }  
} 

Теперь проблема заключается в том, что я уже уверен, что мой пейджинг работает, а количество объектов myObject увеличивается. Но когда я прокручиваю его сбой в методе viewForHeaderInSection с причиной «индекс 10 за пределами границ [0 .. 9]» (я установил пейджинг на сервере с 10 пунктами на страницу)

Я думаю, что раздел в ViewForHeaderInSection не обновляется с помощью метода numberOfSectionsInTableView, который я уже настроил.

Итак, как сделать раздел в ViewForHeaderInSection обновленным?

Спасибо ..

+0

«я установить подкачки в сервер с 10 пунктов на странице» - и делает ваш сервер всегда имеет 10 * k записей? – Kreiri

ответ

0

Ваш numberOfSectionsInTableview имеет return myObject.count+1;, так как таблица послушно просят заголовка для последней секции, которая находится за пределами вашего myObject массива. Вам нужно либо удалить +1 или, если это есть причина, чтобы включить код в viewForHeaderInSection, чтобы справиться с этим особый случай:

if (currentPage > 0 && currentPage < totalPages && section == myObject.count) { 
    // create whatever header view is appropriate for the final section 
} else { 
    myTimeline = ... etc 
} 
Смежные вопросы