我在自定义UIButton
上有UITableViewCell
(动态添加了单元格),这是在MainViewController
,CustomCell
类不同的类上定义的。如果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
属性,让UIButton
在1
和0
之间交替,然后<{1}}上的“要求它”,但它也没有奏效。
答案 0 :(得分:1)
您正在创建[NSIndexPath indexPathForItem:1 inSection:0];总是一排。你应该在循环中使用'i'替换它。