如何访问以编程方式创建的按钮?

时间:2012-04-25 22:10:38

标签: ios ios5 uinavigationbar uibarbuttonitem uinavigationitem

我正在向导航栏中添加多个按钮。

UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 133, 44.01)];

NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:2];
UIBarButtonItem *bi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(assignSelected)];
bi.style = UIBarButtonItemStyleBordered;

[bi setEnabled:FALSE];

[buttons addObject:bi];
[buttons addObject:self.editButtonItem];

[tools setItems:buttons animated:NO];

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tools];

self.editButtonItem.title = @"Select";

基本上我这样做是为了让他们可以使用编辑按钮选择一组项目并对它们采取行动。我想在编辑时启用我在其中添加的操作按钮。我有以下方法来控制按钮在编辑时说的内容。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [super setEditing:editing animated:animated];

    if (editing)
    {
        self.editButtonItem.title = NSLocalizedString(@"Cancel", @"Cancel");
    }
    else
    {
        self.editButtonItem.title = NSLocalizedString(@"Select", @"Select");
    }
}

这就是我要启用和禁用操作按钮的位置。我不确定如何访问该按钮,因为它是以编程方式创建的。

1 个答案:

答案 0 :(得分:1)

您应该可以通过您创建的“bi”变量访问它。 bi变量应该保持指向按钮的指针。所以你可以像这样调用该按钮上的方法:

[bi methodName:methodArg];