如何从UITableView向详细视图的顶部栏添加按钮

时间:2011-08-31 10:47:12

标签: ios uitableview

当选择UITableView中的项目时,会加载一个详细视图,顶部有一个横幅栏,上面有一个后退按钮,可以导航回到表格。

如何将其他按钮添加到该横幅栏?

2 个答案:

答案 0 :(得分:5)

正如安德鲁所说,您可以向导航栏添加自定义视图。例如,如果您要在导航栏的右侧添加多个按钮,则可以执行以下操作:

// right side of nav bar
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 106, 44)];
NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity:3];

UIBarButtonItem *deleteButton = [[UIBarButtonItem alloc]
                                 initWithBarButtonSystemItem:UIBarButtonSystemItemTrash
                                 target:self
                                 action:@selector(deleteAction:)];
deleteButton.style = UIBarButtonItemStyleBordered;
[buttons addObject:deleteButton];
[deleteButton release];

UIBarButtonItem *spacer = [[UIBarButtonItem alloc]
                           initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                           target:nil
                           action:nil];
[buttons addObject:spacer];
[spacer release];

UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
                                 initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                 target:self
                                 action:@selector(cancelAction:)];
cancelButton.style = UIBarButtonItemStylePlain;
[buttons addObject:cancelButton];
[cancelButton release];

[toolbar setItems:buttons animated:NO];
toolbar.barStyle = -1;
[buttons release];

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbar];
[toolbar release];

如果需要更多或更宽的按钮,请确保调整宽度(上面的106),然后为选择器提供方法(deleteAction:和cancelAction:上面)。

答案 1 :(得分:2)

根据您的描述,听起来您正确设置了UINavigationController。您正在描述的“横幅栏”被恰当地称为导航栏。

在详细信息视图中,您可以使用:

UIBarButtonItem* button = [[[UIBarButtonItem alloc] initWithTitle:"HiMom" style:UIBarButtonItemStylePlain target:self action:@selector(onHiMom:)] autorelease];
self.navigationItem.rightBarButtonItem = button;

您还可以添加自定义视图(而不是按钮)以及一些其他设置。我建议您浏览UINavigationItem,UINavigationBar和UIBarButtonItem的文档。