我有一个应用程序,其中我有2个tableview控制器。在第一个tableview中,我在我的第一个tableview的cellforRowAtIndexPath中创建了一个按钮。最初我已将按钮图像设置为“ON”图像,这意味着我的闹钟已开启。然后,当我点击编辑按钮时,我的tableview更改为editmode,我可以将我的按钮图像更改为“OFF”。我希望我的按钮操作当tableview进入编辑模式时应该调用。这是我写的代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *CellIdentifier = [NSString stringWithFormat:@"Cell%d%d", indexPath.section, indexPath.row];
appDelegate = (StopSnoozeAppDelegate*)[[UIApplication sharedApplication]delegate];
TAlarmCell *cell =(TAlarmCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[TAlarmCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
mimageButton = [UIButton buttonWithType:UIButtonTypeCustom];
mimageButton.frame=CGRectMake(10, 20, 20, 20);
mimageButton.tag = 1;
[mimageButton setImage:[UIImage imageNamed:@"alarm_ON.png"] forState:UIControlStateNormal];
[mimageButton setImage:[UIImage imageNamed:@"alarm_OF.png"] forState:UIControlStateSelected];
[cell.contentView addSubview:mimageButton];
}
cell.editingAccessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
//这是我的编辑代码。
-(void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
[mTableView setEditing:editing animated:YES];
if (editing)
{
[mimageButton addTarget:self action:@selector(changeMapType:) forControlEvents: UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = nil;
}
else {
self.navigationItem.rightBarButtonItem = addButton;
[self.mTableView reloadData];
}
}
//这是我的按钮操作
-(void)changeMapType:(UIButton *)sender
{
NSIndexPath *indexPath =[self.tableView indexPathForCell:(UITableViewCell *)[[sender superview] superview]];
NSUInteger row = indexPath.row;
NSLog(@"row...%d",row);
appDelegate.changeimagetype = !appDelegate.changeimagetype;
sender.selected = appDelegate.changeimagetype;
[self.tableView reloadData];
}
但问题是当我点击编辑按钮并且tableview进入编辑模式时,changeMapType:动作没有被调用,我的图像也没有改变。
答案 0 :(得分:0)
你可以给我一些关于
的细节吗?你设置这个标志的地方
if (editing)
并且用户的动作是否希望此方法被调用..?
-(void)changeMapType:(UIButton *)sender
如果你想在进入编辑模式后立即被调用,你可以使用以下方法
[self performSelector:@selector(changeMapType:)];