【问题标题】:How to set title Edit and Done for Button from UIBarButtonItem?如何从 UIBarButtonItem 为按钮设置标题编辑和完成?
【发布时间】:2016-10-29 23:34:51
【问题描述】:

我有一个问题,顶部按钮不会更改自己的名称但它可以工作

- (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;
    }
}

【问题讨论】:

    标签: objective-c xcode uibarbuttonitem


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多