UIToolbar没有显示UIBarButtonItem

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

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

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

来自UINavigationController文档 :

显示工具栏

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

例如:

 [self setToolbarItems:buttons animated:NO];