0

私はUIButtonカスタム(セルが動的に追加される)を持っています。これは、UITableViewCellクラスとは異なるクラスで定義されています。が選択されているかどうかを示す配列を返すメソッドが必要です。この配列の n 番目のインデックスには、n 番目のセルに関する情報が含まれている必要があります。私が書いたものは次のとおりです。MainViewControllerCustomCellMainViewControllerUIButton

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交互に使用してから を「要求」する代わりに試してみましたが、うまくいきませんでした。10MainViewController

4

1 に答える 1

1

[NSIndexPath indexPathForItem:1 inSection:0] を作成しています。それは常に1行です。ループで使用しているため、「i」に置き換える必要があります。

于 2013-05-02T23:34:42.027 に答える