2013-12-02 2 views
-2

Я разработал простое приложение, в котором мне нужно отсортировать таблицу в соответствии с опцией, которую пользователь выбирает в другом диспетчере представлений. Пока все хорошо, потому что с iOS 7 работает отлично, однако тот же код, который работает на iOS6, не является. Поскольку приложение довольно просто, я хотел бы поддерживать совместимость с iOS6, поэтому для этого после сортировки я использую метод tableview.reload, но у меня нет успеха в iOS 6. Есть ли способ обхода эта проблема и совместимость для обеих платформ?Перезагрузка tableview в iOS6 не работает должным образом

+1

Опубликовать код несоответствующего метода. – Cutetare

+0

после перезагрузки содержимого в текстовом поле: [self.tableView reloadData]; – aburb

ответ

1

Метод, который является:

[tableView reloadData]; 

Я не знаю, что tableView.reload есть, но не называют пустоты метод возвращающиеся с точечной нотацией. Я не знаю, работает ли это, но это ужасно.

ли это для меня:

Место это в верхней части файла под #imports:

static NSString *const CellIdentifier = @"ThisIsAUniqueID"; 

При инициализации/конфигурации Tableview сделать это:

[self.tableView registerClass:[UITableViewCell class] forCellWithReuseIdentifier:CellIdentifier]; 

В cellForRow: способ делает это:

/** 
* Asks the data source for a cell to insert in a particular location of the table view. 
* 
* @param tableView     A table-view object requesting the cell. 
* @param indexPath     An index path locating a row in tableView. 
* 
* @return An object inheriting from UITableViewCell that the table view can use for the specified row. 
*/ 
- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
    UILabel *label = [tableView viewWithTag:1]; 
    label.text = sortedArray[indexPath.row]; 
    return cell; 
} 
+0

Вы абсолютно правы, так как у меня не было кода в руке, я не обращал внимания на то, что писал в то время. Но я следую тому, что вы упоминали так: [self.tableView reloadData]; – aburb

+0

reloadData работает с iOS6. Что-то еще является причиной вашей несовместимости, я предполагаю cellForRowAtIndexPath – Cutetare

+0

Это может быть ... позвольте мне поделиться кодом этого метода: UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellId]; UILabel *label1 = (UILabel *)[cell.contentView viewWithTag:1]; [label1 setText:[sortedArray objectAtIndex:indexPath.row]]; return cell; aburb

Смежные вопросы