Apple的文档暗示,对于可通过“编辑/完成”按钮进行编辑的UITableView,您应该在每次切换时创建并销毁该按钮。
这是一段代码“BonjourWeb”示例代码项目:
if (editing) {
// Add the "done" button to the navigation bar
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneAction:)];
self.navigationItem.leftBarButtonItem = doneButton;
[doneButton release];
[self addAddButton:YES];
} else {
if ([self.customs count]) {
// Add the "edit" button to the navigation bar
UIBarButtonItem *editButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editAction:)];
self.navigationItem.leftBarButtonItem = editButton;
[editButton release];
}
这真的比仅仅编辑按钮标题更好吗?是否有一些我没有看到的性能优化?或者这只是不好的示例来源?
答案 0 :(得分:2)
我不知道为什么他们会在该代码示例中执行此操作,但是为任何类型的视图控制器添加“编辑/完成”按钮都有一种更简单的方法(自SDK 2.0起可用)。 UIViewController带有自己的编辑按钮项,所以你可以这样做:
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.leftBarButtonItem = self.editButtonItem;
}
编辑按钮将处理视图控制器进入和退出编辑模式,并相应地更新按钮样式。
答案 1 :(得分:1)
Apple已完成多项默认 UIBarButtonItem
。使用这些名为UIBarButtonSystemItem的默认按钮,用户可以识别此按钮在使用这些按钮的每个应用中执行的操作。 Apple要求根据他们的HIG使用这些默认按钮
所以答案归结为:
更改按钮的标题与使用默认的“完成”和“编辑”按钮不同。它们具有不同的外观(例如“完成”按钮使用浅蓝色。)