我有一个具有 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];
谁能看到我做错了什么,以及如何解决这个问题?