当显示搜索栏时(如在Apple的邮件应用程序中),如何在工具栏中放置tableView的“编辑”按钮?

时间:2012-08-26 17:22:40

标签: objective-c ios uitableview uinavigationcontroller uisearchbar

我想将编辑按钮放在底部的工具栏中。 “编辑”按钮通常在self.navigationItem.rightBarButtonItem = self.editButtonItem中使用viewDidLoad进行实例化,通常位于导航栏中。

尝试将“编辑”按钮(= self.editButtonItem)放入工具栏(通过将其添加到工具栏项目)时,不会显示按钮。但是,我使用Interface Builder添加的所有其他工具栏项都正确显示。

您如何建议将此按钮添加到工具栏?

将“编辑”按钮添加到工具栏的原因是,当启用UISearchBar的搜索处于活动状态且搜索栏隐藏导航栏中的编辑按钮时,将启用表格的编辑模式。

我希望获得与Apple的电子邮件应用程序相同的行为,当搜索处于活动状态时,工具栏中会显示“编辑”按钮。

我很感激任何建议。

感谢您的帮助!!

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式将“编辑”按钮添加到工具栏:

self.editButton = 
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                                             target:nil 
                                             action:nil] 
autorelease];

NSArray *toolbarItems = 
[NSArray arrayWithObjects:self.editButton,nil];

self.toolbar.items = toolbarItems; 

如果要隐藏/显示它,只需切换其hidden属性:

self.editButton.hidden = YES;

答案 1 :(得分:1)

您可以通过创建样式为UIBarButtonSystemItemEdit的新UIBarButtonItem来手动执行此操作。然后只需将其添加到标签栏,分配目标和操作,然后调用[tableView setEditing:YES animated:YES];