我有一个按钮(UINavigationBarItem)用于编辑我的UITableView,它只允许删除。所以当我按下删除键时,每条单元格旁边会出现一条红色的小线,我可以删除每一行。UITableView编辑不起作用
当按下按钮时,下面的函数调用:
-(void)editButtonSelected:(id)sender {
if(self.editing)
NSLog(@"self.editing = true");
else
NSLog(@"self.editing = false");
if(self.editing) {
[super setEditing:NO animated:NO];
[tableView setEditing:NO animated:NO];
[tableView reloadData];
[leftButton setTitle:@"Delete"];
[leftButton setStyle:UIBarButtonItemStylePlain];
self.editing = false;
}
else {
[super setEditing:YES animated:YES];
[tableView setEditing:YES animated:YES];
[tableView reloadData];
[leftButton setTitle:@"Done"];
[leftButton setStyle:UIBarButtonItemStyleDone];
self.editing = true;
}
}
,它工作正常。但只有一段时间。只要我引入一个新的UIViewController,然后关闭那个控制器,这个删除函数就不能在这个主屏幕上工作了。它工作正常,直到一个新的UIViewController放在上面。按钮本身工作正常,并且self.editing的值确实在true和false之间正确切换,但小红线不显示。为什么会发生这种情况?
你为什么要调用'[super setEditing:animated:]'然后'self.editing =/* ... * /;'。 Self的实现应该自动调用super。这可能不是问题。 – 2011-06-15 02:41:46