2011-01-12 4 views
0

У меня есть приложение с базовыми данными/uitableview. На самом деле 80% кода до сих пор равны примеру Apple Sample CoreDataRecipes. Моя проблема в том, что когда я вхожу в режим редактирования (нажав кнопку редактирования), в левой части строк нет «удалить значки». Бампер.Значки удаления слева не отображаются, пока режим редактирования UITableview

alt text

Различие в коде с CoreDataRecipes:

  1. У меня есть пользовательское UITabelview ячейка с пера файл вместо единственного кода.
  2. My Tableview - это выход в моем классе. Так что мой класс RecipeListTableViewController является UIViewController с Tableview делегатов вместо одного UITableViewController

Что я пробовал:

  • Tableview работает отлично. Нет ссылок или вопросов делегатов
  • Я проверил, действительно ли таблица переходит в режим редактирования. Оно делает. Вы видите , потому что кнопка «Добавить» отключена.
  • Я проверил, нормально ли стиль редактирования. Это должно быть по умолчанию, но чтобы убедиться, что я добавил:

    (UITableViewCellEditingStyle) Tableview: (UITableView *) tableVieweditingStyleForRowAtIndexPath (NSIndexPath *) indexPath {вернуться UITableViewCellEditingStyleDelete}

  • Я проверил, если запрос на удаление иконок, где не отстает мой cellview. Нет. Теперь я думаю, что поведение ячейки при перемещении вправо обрабатывается iOS.

  • Когда я прокручиваю ячейку, появляется правая кнопка удаления и работает так, как должна
  • Я попытался построить поведение себя с макетом. При входе в режим редактирования ничего не изменилось. Но когда я красть, теперь я вижу свой подвид в одном ряду:

alt text

Любым какие-либо идеи? Это должно быть что-то простое.

ответ

3

Убедитесь, что

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    return YES; 
} 

Если это не установлено, чтобы вернуть YES то значки не будут включены.По умолчанию установлено значение для возврата NO

+0

по умолчанию это значение true в swift – Gerald

1

Я думаю, что вы не добавили линию tableView.editing=YES по нажатию на кнопку Изменить

Try, установив его!

+0

В приложении падает с: терминальностью приложением из-за неперехваченное исключение «NSInternalInconsistencyException», причина: " + entityForName: не удалось найти NSManagedObjectModel для имени сущности ... Но я думаю, что это уже работает с кнопкой «Изменить». Я использую self.navigationItem.leftBarButtonItem = self.editButtonItem; – Chrizzz

+0

эй приятель .. ты уходишь с трассы .. вопрос, который вы опубликовали, не имеет никакого отношения к Coredata. – iPhoneDev

1

Поскольку ваш пользовательский UIViewController, tableview не получает вызов setEditing. Просто добавьте:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated { 
    [super setEditing:editing animated:animated]; 
    [self.tv setEditing:editing animated:YES]; 
} 
0

Убедитесь, что вы настроили выход/делегат/DataSource то это:

-(void)editButtonTapped 
{ 
    [self.tableView setEditing:YES animated:YES]; 
} 



-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return YES; 
} 

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return UITableViewCellEditingStyleDelete; 
} 
Смежные вопросы