2010-08-24 5 views
0

J'ai un UIPickerView avec 2 composants. Je sauvegarde la sélection du sélecteur d'utilisateur avec NSUserDefaults. Les deux composants ont le texte des lignes de sauvegarde. Pour une raison quelconque, elle enregistre uniquement la dernière ligne sélectionnée et l'applique à l'autre composant, par exemple: Si je sélectionne la ligne 0 dans le composant 0, puis sélectionne la ligne 1 dans le composant 1 et essaie d'y accéder à nouveau il sélectionne la ligne 1 dans les deux composants au lieu de la ligne 0 & ligne 1.Problème avec la sélection UIPickerView et NSUserDefaults

Voici mon code d'économie:


- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 


    NSUserDefaults *pickerSelectionDefaults = [NSUserDefaults standardUserDefaults]; 

    [pickerSelectionDefaults setInteger:row forKey:@"leftComponentSelectionKey"]; 
    [pickerSelectionDefaults setInteger:row forKey:@"rightComponentSelectionKey"]; 

    [pickerSelectionDefaults synchronize]; 

} 

- (void)viewWillAppear:(BOOL)animated { 

    NSUserDefaults *pickerSelectionDefaults = [NSUserDefaults standardUserDefaults]; 
    [enginesPicker selectRow:[pickerSelectionDefaults integerForKey:@"leftComponentSelectionKey"] inComponent:0 animated:YES]; 

    [enginesPicker selectRow:[pickerSelectionDefaults integerForKey:@"rightComponentSelectionKey"] inComponent:1 animated:YES]; 

} 

Merci!

+0

Quelqu'un ????????? –

Répondre

0

Je vais faire une supposition et dire que vous avez besoin d'un peu plus que la mise à la valeur du sélecteur: composant, et que peu plus est:

[enginesPicker reloadComponent:0]; 
[enginesPicker reloadComponent:1]; 

Je pense que vous pouvez aussi utilisation:

[enginesPicker reloadAllComponents]; 

Cheers!

(post-scriptum, si cela fonctionne rappelez-vous d'accepter et de le marquer vers le haut.) (^_^)

0

Bien que cette question est « résolu ». Je voulais ajouter, que reloadComponent n'a pas aidé dans mon cas. Mon problème est le même. Mais la solution qui a aidé était une solution de contournement pour un bogue Apple UIKit existant: voir https://stackoverflow.com/a/13391056/2580805 - donc j'ajoute l'autre solution "pour les prochains codeurs frustrés"

Questions connexes