2010-11-07 8 views
0

J'ai une chaîne qui a une valeur qui continue à changer/mise à jour et je veux en quelque sorte lier ceci à mon cell.textLabel.text. Comment puis-je faire ceci?NSString et un texte de cellule TableView

Ceci est similaire à la datepicker que nous avons sur l'iPhone ... la cellule est mis à jour chaque fois que nous changeons la vue sélecteur valeur

Voici comment je l'avais aménagé:

@interface DatePickerViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> { 
    UITableView * date; 
    UIDatePicker * datePicker; 
    NSString * dateString; 
} 

@property(nonatomic, retain) IBOutlet UITableView * date; 
@property(nonatomic, retain) IBOutlet UIDatePicker * datePicker; 


- (IBAction)dateChangedAction:(id)sender; 

@end 
+0

comment le changement de chaîne? Vous devez fournir plus d'informations –

+0

la chaîne est une chaîne qui représente la date que l'utilisateur choisit à partir du sélecteur de date ... – aherlambang

Répondre

1

Puisque vous utilisez la date Allez

// when creating datePicker object 
[datePicker addTarget:self action:@selector(changeDateInCell:) 
    forControlEvents:UIControlEventValueChanged]; 

méthode Create pour répondre à l'événement

- (void)changeDateInCell:(id)sender{ 
    //Use NSDateFormatter to get string 
    NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    df.dateStyle = NSDateFormatterMediumStyle; 
    NSString * text = [NSString stringWithFormat:@"%@", 
             df stringFromDate:datePicker.date]]; 

    // do something to set the cell data with the text... 

    // clean up 
    [df release]; 

}

+0

J'ai reçu tout le code ci-dessus même avant de poster mon problème .. ma question est de savoir comment définir les données de la cellule avec le texte dans cette méthode changeDateInCell? comment pouvez-vous obtenir la cellule de cette méthode? – aherlambang

+0

est-ce une cellule fixe? Il n'y a pas assez de code fourni dans la question pour répondre à cette question –

+0

le code est exactement comme vous avez ci-dessus ... si vous pouvez remplir le // faire quelque chose pour définir les données de la cellule avec le texte, alors cela répond à ma question – aherlambang

0

Si la chaîne est une propriété d'un objet (ou peut être exposée comme telle), j'utiliserais un observateur de valeurs clés (KVO). Utilisation de addObserver: forKeyPath: options: context: vous pouvez obtenir un rappel (observerValueForKeyPath: ofObject: changer: context :) lorsque la valeur de votre propriété change, et mettre à jour la cellule en conséquence. Si votre cellule est une cellule personnalisée, vous pouvez envelopper la fonctionnalité dans la cellule, sinon vous pouvez le placer dans votre contrôleur de vue.

Questions connexes