У меня есть контроллер таблиц, который состоит из кнопки с изображением на ней и 2 меток. Когда я изменяю вид таблицы на режим редактирования, я хочу, чтобы моя кнопка выполняла действие, то есть когда я нажимаю на свою кнопку в режиме редактирования, она должна менять свое изображение. У меня есть класс editcontroller, когда по ссылке didselectrow первой таблицы открывается новый класс, т.е. editcontroller.
В этом классе контроллеров у меня есть кнопка переключения. Когда изображение кнопки первого просмотра таблицы изменяется на «ВЫКЛ», кнопка переключения в контроллере редактирования также должна быть изменена на «ВЫКЛ», а когда кнопка переключения контроллера редактирования установлена на «ВКЛ», то изображение кнопки должно измениться на «ВКЛ». .
Это мой первый код для просмотра таблицы
- (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];
[mimageButton addTarget:self action:@selector(changeMapType:) forControlEvents: UIControlEventTouchUpInside];
}
[appDelegate.dateFormatter setDateFormat:@"hh:mm a"];
cell.accessoryType = UITableViewCellAccessoryNone;
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;
editimage = YES;
[self.mTableView reloadData];
}
else {
editimage = NO;
self.navigationItem.rightBarButtonItem = addButton;
if (appDelegate.snoozearray)
{
[appDelegate.snoozearray release];
}
appDelegate.snoozearray = [[NSMutableArray alloc]init];
[Alarm getInitialDataToDisplay:[appDelegate getDBPath]];
[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];
}