[英]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.