を介してセルにボタンが接続されている がありUITableViewController
ます。これらのボタンは、ユーザーがクリックしたときに表示されます。自体は、複数のパラメーターを含むオブジェクトので構成されており、"name" パラメーターがテーブルに表示されています。UITableView
accessoryView
selected/deselected
table
NSMutableArray
NSString
私が今やろうとしているのは、ボタンが選択されたときに、対応するOBJECT
そのリンクをそれぞれの"name"
パラメーターに追加することNSMutableArray
です。ユーザーはセルを選択しているのではなく、セルに関連付けられているボタンをクリックしています。
ここに私の方法がselects/deselects
ありbutton
ますcell
:
-(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];
// statement to add object to NSMutableArray
}
else
{
[btn setImage:[UIImage imageNamed:@"CheckBox1.png"] forState:UIControlStateNormal];
// statement to remove object from NSMutableArray
}
}
//Here is my code that shows how I initialize my button and cell in my UITableView
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
testButton = [UIButton buttonWithType:UIButtonTypeCustom];
[testButton setFrame:CGRectMake(280, 57, 25, 25)];
[testButton setImage:[UIImage imageNamed:@"CheckBox1.png"] forState:UIControlStateSelected];
[testButton setImage:[UIImage imageNamed:@"CheckBox2.png"] forState:UIControlStateNormal];
[testButton setUserInteractionEnabled:YES];
[testButton addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside];
[testButton setTag:cell.tag];
[cell setAccessoryView:testButton];
//[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
// Configure the cell...
TestObject *tObject = [[DataModel sharedInstance].testList objectAtIndex:indexPath.row];
cell.textLabel.text = tObject.testTitle;
return cell;
}
私の問題は、オブジェクトを配列に実際に追加することではなく、ボタンからそれぞれのセルを導出し、そのセルから正しいオブジェクトを導出することです。