UIToolbar没有显示UIBarButtonItem

时间:2012-05-30 23:13:49

标签: ios ipad uitoolbar

我正在使用故事板,我有一个拆分视图,其中master是一个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];

1 个答案:

答案 0 :(得分:56)

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

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

来自UINavigationController docs

  

显示工具栏

     

导航控制器对象在其视图中管理可选工具栏   层次结构。显示时,此工具栏将获取其当前设置   来自活动视图控制器的toolbarItems属性的项目。   当活动视图控制器更改时,导航控制器   更新工具栏项以匹配新视图控制器,动画   适当时,新项目就位。

例如:

[self setToolbarItems:buttons animated:NO];