簡體   English   中英

如何更改 UINavigationBar 中的編輯/完成按鈕標題

[英]How to change Edit/Done button title in UINavigationBar

如果為 tableview 啟用了編輯模式,它會顯示一個標題為“編輯”的按鈕,當按下它時,它會將標題更改為“完成”

我想知道是否有辦法將完成按鈕標題更改為其他名稱?

我已經更改了完成按鈕的標題。

我使用的代碼是

self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.editButtonItem.title = @"Change";

現在編輯是改變

如何完成其他事情?

您可以像這樣更改編輯按鈕的標題:-

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    // Make sure you call super first
    [super setEditing:editing animated:animated];

    if (editing)
    {
        self.editButtonItem.title = NSLocalizedString(@"Cancel", @"Cancel");
    }
    else
    {
        self.editButtonItem.title = NSLocalizedString(@"Edit", @"Edit");
    }
}

它的工作方式就像編輯:-

在此處輸入圖像描述

在此處輸入圖像描述

這是為 Swift 更改它的方法

override func setEditing (editing:Bool, animated:Bool)
{
    super.setEditing(editing,animated:animated)
    if (self.editing) {
        self.editButtonItem().title = "Editing"
    }
    else {
        self.editButtonItem().title = "Not Editing"
    }
}

基於Nitin 的回答,我建議使用一種稍微不同的方法,即使用內置的UIButtonBar系統項。

這將為您的 UI 提供系統外觀和感覺。 例如,停止編輯的標准“完成”按鈕在 iOS 8 上應該具有特定的粗體外觀。Apple 將來可能會更改這些樣式。 通過使用系統定義的按鈕,您的應用程序將自動選擇當前的美學。

這種方法還為您提供了免費的字符串本地化。 Apple 已將系統按鈕標題翻譯成 iOS 支持的數十種語言。

這是我得到的代碼:

-(IBAction) toggleEditing:(id)sender
{
  [self setEditing: !self.editing animated: YES];
}

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

  const UIBarButtonSystemItem systemItem = 
    editing ? 
    UIBarButtonSystemItemDone : 
    UIBarButtonSystemItemEdit;

  UIBarButtonItem *const newButton = 
    [[UIBarButtonItem alloc] 
      initWithBarButtonSystemItem: systemItem 
                           target: self 
                           action: @selector(toggleEditing:)];

  [self.navigationItem setRightBarButtonItems: @[newButton] animated: YES];
}

這里的示例適用於您的UIViewController托管在UINavigationController中的情況,因此具有UINavigationItem實例。 如果您不這樣做,則需要以適當的方式更新欄項目。

在您的viewDidLoad中,使用以下調用來配置可供使用的編輯按鈕:

[self setEditing: NO animated: NO];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM