2016-10-29 13 views
1

私は問題を抱えている、トップボタンは、自分の名前を変更しませんが、それはあなたが必要なものを自動的に行うように思われるので、タイトルの設定方法UIBarButtonItemからボタンの編集と完了?

- (IBAction)switchEdit:(UIBarButtonItem *)sender { 
    sender.possibleTitles = [NSSet setWithObjects:@"Edit", @"Done", nil]; 
    if (sender.style == UIBarButtonSystemItemEdit){ 
     sender.style = UIBarButtonSystemItemDone; 
     [self.navigationItem.rightBarButtonItem setTitle:@"Done"]; 
     self.tableView.editing = NO; 
      }else{ 
     sender.style = UIBarButtonSystemItemEdit; 
     [self.navigationItem.rightBarButtonItem setTitle:@"Edit"]; 
     self.tableView.editing = YES; 
    } 
} 

答えて

1

は、UIViewControllereditButtonItemプロパティを使用することを検討して動作します:

を返します。そのタイトルと関連する状態を編集と完了の間で切り替えることができます( )。

、あなたのアプローチを維持したい場合は、プロパティとしてこれら二つのボタンを宣言することができますし、そのように、例えばviewDidLoadでそれらを設定します。

@interface ViewController() 

@property (nonatomic, strong) UIBarButtonItem *editBarButtonItem; 
@property (nonatomic, strong) UIBarButtonItem *doneBarButtonItem; 

@end 

、その後

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.editBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editSelectorName)]; 
    self.doneBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneSelectorName)]; 
} 

あなたのコードでは、次のようにしてください:

self.navigationItem.rightBarButtonItem = self.editBarButtonItem 

または

self.navigationItem.rightBarButtonItem = self.doneBarButtonItem 
関連する問題