我有一個按鈕(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