gpt4 book ai didi

iphone - 如何查看以编程方式创建的 UIButton 的标签

转载 作者:行者123 更新时间:2023-12-03 20:30:45 25 4
gpt4 key购买 nike

在我的应用程序的一个 viewController 上,有一长串以编程方式添加的 20 个左右的按钮,所有这些按钮我都想调用相同的方法,但通过按钮标签来标识自己,但我遇到了一个已设置的问题我花了几个小时的研究和尝试。基本问题是我不太知道如何以除初始化方法之外的任何其他方法访问以编程方式创建的按钮。

我的问题总结:

1)如果我要在 viewDidLoad 方法中创建按钮,我如何在我创建的 void 方法中访问它?

2)我如何在创建的 void 方法中访问这些按钮标签?

这是我到目前为止的代码,但它会产生错误,下面将对此进行解释。

-(void)viewDidLoad{
float itemScrollerXdirection =0;
float itemScrollerYdirection =0;
float ySize =70.0;
float xSize = 70.0;

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(itemScrollerXdirection,itemScrollerYdirection,xSize,ySize);
[button addTarget:self action:@selector(itemSelected) forControlEvents:UIControlEventTouchUpInside];
button.tag =1;
[button setTitle:@"button1" forState:UIControlStateNormal];
[itemScroller addSubview:button];
}
//no errors in the above code

-(void)itemSelected{


if ([sender tag] == 1) { //Gets error "Use of undeclaired identifier 'sender'"
button.hidden = YES; //Gets error "Use of undeclaired identifier 'button1'"
}
}

最佳答案

我们并不是在 ruby​​ 的神秘领域中工作,需要初始化事物并将其存储在某个地方以便您调用它们,请尝试以下操作:

#.h
@interface MyController : UIViewController{
NSMutableArray *buttons;
}

#.m
-(void)init // Or whatever you use for init
{
buttons = [[NSMutableArray alloc] init];
}

-(void)viewDidLoad{
//blah blah (what you already have)

[button addTarget:self action:@selector(itemSelected:) //Add ":"
forControlEvents:UIControlEventTouchUpInside];
button.tag =0;

[buttons addObject:button] //Add button to array of buttons

//blah blah (what you already have)
}

-(IBAction)itemSelected:(id)sender{
UIButton* button = [buttons objectAtIndex:sender.tag]
button.hidden = YES;
}

注意:我是凭内存做的,所以它可能无法完美工作。

关于iphone - 如何查看以编程方式创建的 UIButton 的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13888982/

25 4 0