При редактировании UITableView, нажатие красной точки не отображает кнопку «Удалить» - PullRequest
0 голосов
/ 18 марта 2011

Табличное представление содержится в обычном представлении.
Как и ожидалось, нажатие кнопки «Изменить» (в этом табличном представлении) отображает «красную точку со знаком минус» для каждой строки (то есть метод setEditing выполняется ОК).
Однако нажатие такой красной точки НЕ отображает соответствующую кнопку «Удалить» («commitEditingStyle» НЕ выполняется).
Любая идея о том, что может быть не так (см. Соответствующий код ниже)?

//---- RootViewController.h ----
@interface RootViewController : UIViewController <NSFetchedResultsControllerDelegate> {    //used to be a 'UITableViewController'. Changed to UIViewController and rewired so I could add an iAd banner and the tableView to it. Before that change, issue was not present (commitEditingStyle below used to work).
...
}
@property (nonatomic, retain) IBOutlet UITableView *tableView;   

//----- RootViewController.m ----
- (void)viewDidLoad {
    self.navigationItem.leftBarButtonItem = self.editButtonItem; 
    ...
}
- (void) setEditing:(BOOL)editing animated:(BOOL)animated {    //Added so clicking 'Edit' displays red dots that rotate on tap (as expected).
    [super setEditing:editing animated:animated];         
    [self.tableView setEditing:editing animated:animated];
    if (editing) {                                           
        NSLog(@"RootViewController setEditing");             //Executes OK.
    }
}
- (void)tableView:(UITableView *)tableView                  //Clicking a red dot no longer executes this method (so, does not display 'Delete' red button).
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle  
forRowAtIndexPath:(NSIndexPath *)indexPath {         

    NSLog(@"RootViewController commitEditingStyle");           //Does NOT execute.
    ...
}

Ответы [ 3 ]

0 голосов
/ 18 марта 2012

Убедитесь, что для cell.editingAccessoryView установлено значение nil in:

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
 cell.editingAccessoryView = nil;
}
0 голосов
/ 18 марта 2012

вы не реализуете протокол tableView в вашем .h .. интерфейс вашего класса должен быть таким

@interface RootViewController : UIViewController <NSFetchedResultsControllerDelegate, UITableViewDelegate,UITableViewDataSource>
0 голосов
/ 18 марта 2011

Дважды проверьте, правильно ли вы подключили UITableViewDelegate и UITableViewDataSource таблицы к новому написанному вами UIViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...