tableViewを持つUITableViewControllerがあります。各セルには、チェックボックスのように選択/選択解除できるボタンがあり、これを行うメソッドは正常に機能しています。このリストを繰り返し処理して、すべてのボタンを一度に選択できる、tableheaderview のボタンによって呼び出される別のメソッドが必要です。皮肉なことに、反復を実行できますが、ボタンを選択/選択解除するメソッドを呼び出すことができないようです。
これが私の関連コードです:
//This is my method does the iteration
- (void) startWizard {
NSLog(@"Did it select?");
for (int i = 0; i < [self.tableView numberOfSections]; i++) {
for (int j = 0; j < [self.tableView numberOfRowsInSection:i]; j++) {
NSUInteger ints[2] = {i,j};
NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:ints length:2];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
//Here is my code to call the method that selects/deselects
[self buttonTouched:nil];
}
}
}
そして、個々のボタンの実際の選択/選択解除を行う(そして正常に動作する)メソッドは次のとおりです。
-(void)buttonTouched:(id)sender
{
UIButton *btn = (UIButton *)sender;
if( [[btn imageForState:UIControlStateNormal] isEqual:[UIImage imageNamed:@"CheckBox1.png"]])
{
[btn setImage:[UIImage imageNamed:@"CheckBox2.png"] forState:UIControlStateNormal];
// other statements
}
else
{
[btn setImage:[UIImage imageNamed:@"CheckBox1.png"] forState:UIControlStateNormal];
// other statements
}
}
各セルのボタンは、次のように accesseryView としてそのセルに追加されています。
[cell setAccessoryView:testButton];
誰が私が間違っているのか、どうすればこれを修正できるのかを見ることができますか?