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

Dav*_*ers 1 uitableview ios

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

如何在该横幅栏中添加其他按钮?

BP.*_*BP. 5

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

// 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];
Run Code Online (Sandbox Code Playgroud)

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