iOS:从UITableViewCell中创建的按钮检索选择状态

时间:2013-05-02 22:50:09

标签: iphone ios uitableview

我在自定义UIButton上有UITableViewCell(动态添加了单元格),这是在MainViewControllerCustomCell类不同的类上定义的。如果MainViewController被选中,我需要UIButton中的方法返回一个数组。该数组在第n个索引中应该具有关于第n个单元的信息。 我写的是:

CustomCell.h

@interface CustomCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UIButton *tickButton;

CustomCell.m

- (IBAction)tick:(UIButton *)sender {

    if ([sender isSelected]) {
        [sender setImage:[UIImage imageNamed:@"off"] forState:UIControlStateNormal];
        [sender setSelected:NO];
    } else {
        [sender setImage:[UIImage imageNamed:@"on"] forState:UIControlStateSelected];
        [sender setSelected:YES];
    }
}

MainViewController.m

-(NSMutableArray*) returnTickArray{
    NSMutableArray *tickArray = [[NSMutableArray alloc] initWithCapacity:n];
    for (NSInteger i=0; i<n; i++){
        NSIndexPath *indexPath = [NSIndexPath indexPathForItem:1 inSection:0];
    CustomCell *cell = (CustomCell *) [self.itemTable cellForRowAtIndexPath:indexPath];
        if ([cell.tickButton isSelected]){
            a=[NSNumber numberWithInt:1];
        }
        else {
            a=[NSNumber numberWithInt:0];
        };
        [tickArray addObject:a];
    }

    return tickArray;

}

我还试过而不是使用按钮选择状态来创建公共NSNumber属性,让UIButton10之间交替,然后<{1}}上的“要求它”,但它也没有奏效。

1 个答案:

答案 0 :(得分:1)

您正在创建[NSIndexPath indexPathForItem:1 inSection:0];总是一排。你应该在循环中使用'i'替换它。