UIToolbar未显示UIBarButtonItem

26

我正在使用故事板,并且我有一个分割视图,在其中master是UITableViewController。就像iPad邮件应用程序一样,我想显示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];
1个回答

72

在Apple iOS论坛的帮助下找到了答案!

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

根据UINavigationController文档:

显示工具栏

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

例如:

[self setToolbarItems:buttons animated:NO];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接