2010-12-14 18 views
7

Tablo görünümünün düzenleme durumuna geçtiğini algılamak için kullanabileceğim bir bildirim veya temsilci yöntemi var mı?UITableView Düzenle/Bitti Etkinlikler

Yapmak istediğim, tablonun düzenlediğini algılamak ve ardından "Yeni öğe ekle" ya da bunun gibi bir şey içeren ekstra bir satır görüntülemek.

Görünüm Denetçisi yüklendiğinde ve ardından [tableView isEditing] öğesinin true olup olmadığına bağlı olarak, dizinin sonuna "Yeni Öğe Ekle" satırını eklemeyi denedim, ya [dizi sayısı] 'na dönün (düzenleme) veya [dizi sayısı] - 1 (düzenleme yapmadığım için).

Herhangi bir fikrin var mı? Apple'ın tablodaki öğeleri düzenlemesi ve silinmesine izin verme şekli nedir?

cevap

6

Ben onu buldum. Bu yöntemi geçersiz kılın:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{ 
    [super setEditing:editing animated:animated]; 

    // do something 
} 
3

Yapabileceğiniz şey, editButton'unuza seçici olarak bir IBAction eklemektir. EditButton'a dokunulduğunda bu yöntem çağrılır. Örnek: Kendi UIButton var ve standart self.editButtonItem kullanmadıysanız

-(void)viewDidLoad 
{ 
// ... 
[self.editButtonItem setAction:@selector(editAction:)]; 
[self.navigationItem setRightBarButtonItem: self.editButtonItem]; 

// .. your code 

} 

-(IBAction)editAction:(id)sender 
{ 
    UIBarButtonItem * button = ((UIBarButtonItem*)sender); 

    if (!self.tableView.editing) 
    { 
     [self.tableView setEditing:YES animated:YES]; 
     [button setTitle:@"Done"]; 
     // do your stuff... 
    } 
    else 
    { 
     [button setTitle:@"Edit"]; 
     [self.tableView setEditing:NO animated:YES]; 
     // do your stuff... 
    } 
} 

sonra kullanmak [yourButton addTarget: kendinden eylemi: @selector (editAction :) forControlEvents: UIControlEventTouchUpInside]; Ve bunu düzenleme olarak UIButton * olarak kullanın: yöntem