tablecell работает в IOS 6.0, но не в IOS 5.1

Я обновил свое приложение и добавил некоторые функции, но с моими таблицами происходит что-то странное. Позволь мне объяснить:

У меня есть табличное представление, и при нажатии строки я хочу открыть новый контроллер представления.

Я использую раскадровку и переходы, и вот что у меня есть:

Storyboardи переход, который при нажатии строки открывает контроллер представления.

Содержимое каждой строки находится в отдельном файле .xib (если оставить то же самое, я получил принудительное закрытие в IOS 6.0 или мог бы обрабатывать содержимое, независимо от того, что я добавлял).

Итак, мой EachCell.xib таков: EachCell.xib

Это мой код для каждой ячейки:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier=@"EachCell";
    //this is the identifier of the custom cell
    EachCell *cell = (EachCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    tableView.backgroundColor=[UIColor clearColor];
    tableView.opaque=NO;
    tableView.backgroundView=nil;

    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EachCell" owner:self options:nil]; ######HERE IS THE SIGBART PROBLEM
        cell = [nib objectAtIndex:0];
    }
   /*** bla bla bla**/


    return cell;
}

и это для нажатия и открытия нового контроллера представления:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
/..rest of code ../
[self performSegueWithIdentifier:@"nameofsegue" sender:tableView];
        }

Я упомянул, где проблема SIGBART.

Каждая ячейка — это имя файла .h, .m, .xib и идентификатор повторного использования моей пользовательской ячейки. Я только вставил ячейку таблицы в раскадровку, чтобы установить переход.

Странно то, что он работает в IOS 6.0, но не в IOS 5.1.

Это ошибка, которую я получаю в ios5.1:

NSInternalInconsistencyException, the Nib data is invalid.

person ghostrider    schedule 25.01.2013    source источник


Ответы (1)


Похоже, автомакет включен в Xib-файле вашей пользовательской ячейки. Внутри пера убедитесь, что в его атрибутах не установлен флажок автомакета. По умолчанию этот флажок установлен. Автомакет — это функция iOS6, поэтому вам может потребоваться настроить макет этой ячейки.

введите здесь описание изображения

person Sean    schedule 25.01.2013
comment
да это было! знаете ли вы, должно ли развертывание быть установлено для проекта sdk (ios 6.0), если я также хочу быть совместимым с ios 5.0, или я должен установить его для всех sdk? - person ghostrider; 26.01.2013