我有带工具栏的导航控制器。工具栏包含一个包含三个项目的分段控件。当用户选择此控件中的一个段时,我需要更新工具栏并添加其他项。 我在viewDidLoad中尝试了下一个代码:
-(void)viewDidLoad {
[super viewDidLoad];
[self setToolbarItems:items_array];
}
和didChangeSegmentControl事件处理程序:
-(void)didChangeSegmentControl:(UISegmentedControl*)sender {
NSArray* items = [self currentToolbarItems];
[self setToolbarItems: items];
}
但是在更改了didChangeSegmentControl中的工具栏项后,它们就消失了。 如何在viewDidLoad方法中更新工具栏的项目?
答案 0 :(得分:1)
看起来,我已经找到了这个问题的答案。 在[self currentToolbarItems]例程中,我将UISegmentedControl包装在UIBarButtonItem中。当使用相同的UISegmentedControl两次创建UIBarButtonItem并将其分配给工具栏项时,工具栏不会显示它。 因此,我不是每次使用相同的控件创建UIBarButtonItem,而是重复使用它。