J'ai une vue tableau avec une cellule personnalisée ( UISwitch
sur chaque cellule du tableau).
J'ai réglé ma cellule comme ceci :
switchView = [[UISwitch alloc] initWithFrame:CGRectMake(200.0f, 5.0f, 75.0f, 30.0f)];
cell.accessoryView = switchView;
[switchView setOn:NO animated:NO];
[switchView addTarget:self action:@selector(favorite:) forControlEvents:UIControlEventValueChanged];
[cell addSubview:switchView];
Et l'action qui est appelée par l'utilisateur quand il change le UISwitch
est :
-(IBAction)favorite:(id)sender
{
indexPath = [self.tableView indexPathForCell:(UITableViewCell*)[sender superview]];
NSMutableArray *favoriteList = [[NSMutableArray alloc]init];
NSString *favoriteItem = [self.tableView cellForRowAtIndexPath:indexPath].textLabel.text;
NSLog(favoriteItem);
if ([switchView isOn])
{
[favoriteList addObject:favoriteItem];
NSUserDefaults *favoriteDefaults = [NSUserDefaults standardUserDefaults];
[favoriteDefaults setObject:favoriteList forKey:@"MyFavorites"];
NSLog(@"%@", favoriteList);
}
else
{
[favoriteList removeObject:favoriteItem];
NSUserDefaults *favoriteDefaults = [NSUserDefaults standardUserDefaults];
[favoriteDefaults setObject:favoriteList forKey:@"MyFavorites"];
NSLog(@"%@", favoriteList);
}
}
Le problème est que :
Lors du test de l'application, seul le dernier élément (cellule) de la vue tableau fonctionne correctement.
Pour les autres, le débogueur renvoie que l'état du UISwitch
est toujours "OFF".
Quel est le problème ?