iphone - 如何获取许多 UIButtons 的标签但具有相同的 Action 选择器

标签 iphone objective-c ios

我有一个方法可以显示 10 个(或更多)UIButton。我这里有一个关于如何显示这些按钮的代码..

-(void)showButtons{
for(int i = 0; i < 10; i++){
  UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
  button.frame = CGRectMake(x, y, 100, 94);  //Assume x and y have values
  **button.tag = i + 1000;**
  [button setBackgroundImage:[_cardImages objectAtIndex:i]  
      forState:UIControlStateNormal];
  [button addTarget:self action:@selector(myMethod:)   
      forControlEvents:UIControlEventTouchUpInside];
  [self.view add subview:button];
  [button release];

}

-(IBAction)myMethod:(id)sender{
// I would like to print here button.tag, but I always get an error

最佳答案

您需要在此处对发件人进行类型转换,因为 id 类型没有 tag 属性。
新代码将是


-(IBAction)myMethod:(id)sender{
   UIButton *pressedButton = (UIButton *)sender;
   NSLog(@"Tag of button pressed:%d",pressedButton.tag);
}

关于iphone - 如何获取许多 UIButtons 的标签但具有相同的 Action 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9059089/

相关文章:

ios - 在 TableView Controller 中显示之前对 JSON 响应进行排序 - Objective C

iphone - 从 plist 读取对象到 NSArray

ios - Facebook App邀请iOS集成错误

ios - Core Plot 以条形方式截断数据

ios - 如何修复导航栏以转到 tabView 中的屏幕顶部?

iphone - UITableView 分隔符问题

iphone - 在 C++ iPhone 游戏中使用 Objective-C 游戏引擎?

html - 如何设置iPhone顶部栏的颜色?

objective-c - 由于 Xcode 8 中有太多未处理的消息而丢弃事件 0 的消息

ios - 是否可以发送推送通知而不振动设备