2010-10-06 13 views
7

benim düzenle düğmesineiPhone, Düzenle düğmemi masam için nasıl değiştiririm ve Bitti'ye dönüp Düzenle'ye geri dönebilir miyim?

self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] 
     initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self 
     action:@selector(editNavButtonPressed)] autorelease]; 

ekledik Ama geri Done bunu çevirmek mümkün görünmektedir ve yok konsol onun Boş

-(IBAction)editNavButtonPressed 
{ 
//[self.tableView setEditing:YES animated:YES]; 
BOOL editing = !self.tableView.editing; 
NSLog(@"tile=#%@#", self.navigationItem.rightBarButtonItem.title); 

if ([self.navigationItem.rightBarButtonItem.title isEqualToString:NSLocalizedString(@"Edit", @"Edit")]) { 
    self.navigationItem.rightBarButtonItem.title = NSLocalizedString(@"Done", @"Done"); 
} else { 
    self.navigationItem.rightBarButtonItem.title = NSLocalizedString(@"Edit", @"Edit"); 

} 
//self.navigationItem.rightBarButtonItem.enabled = !editing; 
//self.navigationItem.rightBarButtonItem.title = (editing) ? NSLocalizedString(@"Done", @"Done") : NSLocalizedString(@"Edit", @"Edit"); 
[self.tableView setEditing: editing animated: YES]; 

}

cevap

29

Sen -[UIViewController editButtonItem] kullanmalıdır, doğru Yapıldı Düzen/eyalete geçiş ve aynı zamanda UIViewController kendisinde düzenleme moduna geçiş olacaktır. Böyle bir şey

Kurulumu: düzenleme modu duruma getirildiğinden zaman

-(void)viewDidLoad { 
    self.navigationItem.rightBarButtonItem = [self editButtonItem]; 
} 

Daha sonra -[UIViewController setEditing:animated:] geçersiz kılabilirsiniz hemen haberdar olsun.

if ([self isEditing]) { 
    // Do something editing like 
} else { 
    // Do whatever is not editing like. 
} 
1

diyor Düğme stilini değiştirin veya builtin self.editButtonItem öğesini kullanın;

onay bu - How to change UIBarButtonItem's type in UINaviagationBar at runtime?

Alkış, Krzysztof Zablocki

+0

Evet, ancak şimdi de düğmenin neyin ayarlandığını belirlemem gerekiyor. Bu http://stackoverflow.com/questions/2020716/rename-standard-edit-button-in-tableview öğesini buldum ancak setEditing işlevi hiçbir zaman çağrılmıyor. – Jules

1

Swift 3:

-(void)setEditing:(BOOL)editing animated:(BOOL)animated { 
    [super setEditing:editing animated:animated]; 
    // Add your custom code here 
} 

Yoksa bunun için UIViewController sorgulayabilir akım düzenleme devlet öylesine gibi Düzenlemeniz düğmesi için bir çıkış ve işlem eklemek için tableViewController olarak

:

@IBOutlet var editButton:UIBarButtonItem! 

@IBAction func editTapped() { 
    if(self.tableView.isEditing){ 
     self.tableView.setEditing(false, animated:true) 
     editButton.title = "Edit" 
    }else{ 

     self.tableView.setEditing(true, animated:true) 
     editButton.title = "Done" 
    } 
} 

storyBottonItem tablosuna viewViewController ekleyin rd, ardından düğmenin referans çıkışını bağlayın ve eylemi gönderin.

İlgili konular