从多个UIButton调用一个选择器

时间:2012-02-04 20:16:12

标签: iphone objective-c ios ipad

我知道这里有一些非常类似的问题,但我找不到我需要的信息。我在for循环中为我的视图添加了一个UIButtons网格。每次创建新按钮时,我都会调用addTarget:self action:@selector(doYourThing:) forControlEvent:UIControlEventTouchUpInside。如果我只做一个按钮,它就有效。但是当我使用for循环创建一个完整的按钮网格时,没有一个按钮想要调用选择器而是获得EXC_BAD_ACCESS。有什么建议?感谢大家。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [titleLabel setText:[site title]];
    // Do any additional setup after loading the view from its nib.
    buttonArray = [[NSMutableArray alloc] initWithCapacity:250];
    int i = 0;
    int c = 0;
    int index = 0;
    for (c=0; c < [site columnCount]; c++) {
    for (i = 0; i < [site rowCount]; i++) {
        plotButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [plotButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
        CGPoint origin = CGPointMake(60.0, 40.0);
        [plotButton setTitle:@"Plot" forState:UIControlStateNormal];
        [plotButton setFrame:CGRectMake(origin.x + (90.0 * c), origin.y + (45.0 * i), 90.0, 45.0)];
        [plotButton setTag:index];
        [buttonArray insertObject:plotButton atIndex:index];
        NSLog(@"%d", [plotButton tag]);
        index ++;
        [[self view] addSubview:plotButton];

        }
    }
}

这是我的for循环。 idk如果它是愚蠢的嵌套他们,但我正在制作一个按钮网格,这似乎是完成行和列的合理方式。无论如何,谢谢。

添加了异常断点。得到:Catchpoint 2(throw)待定断点1 - “objc_exception_throw”已解决。

2 个答案:

答案 0 :(得分:2)

当我用整数替换[site columnCount]和[site rowCount]时,你的代码工作正常。我的猜测是你在这两种方法中遇到问题。

答案 1 :(得分:0)

我猜你调用了[UIButon buttonWithType:...]构造函数然后你发布了按钮... 但我只是在猜测。你应该在这里编写代码以确保。

见到你!