在导航控制器的工具栏中动态更新项目

时间:2011-06-04 20:06:29

标签: iphone uinavigationcontroller uitoolbar

我有带工具栏的导航控制器。工具栏包含一个包含三个项目的分段控件。当用户选择此控件中的一个段时,我需要更新工具栏并添加其他项。 我在viewDidLoad中尝试了下一个代码:

-(void)viewDidLoad {
    [super viewDidLoad];

    [self setToolbarItems:items_array];
}

和didChangeSegmentControl事件处理程序:

-(void)didChangeSegmentControl:(UISegmentedControl*)sender {
    NSArray* items = [self currentToolbarItems];
    [self setToolbarItems: items];
}

但是在更改了didChangeSegmentControl中的工具栏项后,它们就消失了。 如何在viewDidLoad方法中更新工具栏的项目?

1 个答案:

答案 0 :(得分:1)

看起来,我已经找到了这个问题的答案。 在[self currentToolbarItems]例程中,我将UISegmentedControl包装在UIBarButtonItem中。当使用相同的UISegmentedControl两次创建UIBarButtonItem并将其分配给工具栏项时,工具栏不会显示它。 因此,我不是每次使用相同的控件创建UIBarButtonItem,而是重复使用它。