26

我正在使用情节提要,并且我有一个拆分视图,其中主视图是 UITableViewController。像 iPad Mail 应用程序一样,我想显示一个 UIToolbar。

我无法通过情节提要添加工具栏,但我设法以编程方式添加它。我还可以将 UILabel 添加到工具栏,但我找不到添加刷新按钮或任何类型的 UIBarButtonItem 的方法。

任何的想法?

- (void)viewDidLoad {
  [super viewDidLoad];

  [self.navigationController setToolbarHidden:NO];

  UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50.0f, 0.0f, 80.0f, 40.0f)];
  label.text = @"last updated...";
  label.textAlignment = UITextAlignmentCenter;
  label.font = [UIFont systemFontOfSize:13.0];
  [self.navigationController.toolbar addSubview:label];

  UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"Item" style:UIBarButtonItemStylePlain target:self action:@selector(action:)];
  UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"Item1" style:UIBarButtonItemStyleBordered target:self action:@selector(action:)];

  NSArray *buttons = @[item1, item2, nil];
  [self.navigationController.toolbar setItems:buttons animated:NO];
4

1 回答 1

71

感谢 Apple iOS 论坛,找到了答案!

当您使用导航控制器的工具栏时,您必须在活动视图控制器的toolbarItems属性上设置工具栏按钮,而不是在实际导航控制器的工具栏本身上。

UINavigationController文档

显示工具栏

导航控制器对象管理其视图层次结构中的可选工具栏。toolbarItems显示时,此工具栏从活动视图控制器的属性中获取其当前的项目集。当活动视图控制器发生变化时,导航控制器会更新工具栏项以匹配新的视图控制器,并在适当的时候将新项设置为动画。

例如:

[self setToolbarItems:buttons animated:NO];
于 2012-05-31T11:36:49.010 回答