comment est-il possible de créer un onglet iphone qui charge des données sélectionnées à partir d'un tableau et change en fonction de la sélection de l'utilisateur.création d'un onglet de favoris iphone
Répondre
Alx,
Un scénario simple serait de créer une base NIB-UITableViewCell
(il y a beaucoup de tutoriels là-bas pour cela) qui a une étiquette sur elle d'une certaine sorte. Ce que vous pouvez faire est alors attraper le contenu de l'étiquette lorsque l'utilisateur sélectionne la cellule et la stocker dans un tableau mutable qui puis est stocké dans le NSUserDefaults
.
Vous pouvez ensuite accéder au NSUserDefaults
depuis un autre affichage et l'utiliser pour remplir un onglet "Favoris" comme vous l'avez demandé.
Un petit échantillon de code pour vous aider (en supposant que les données d'origine se trouvent dans un UITableView comme vous l'avez dit dans une question précédente). J'écris ceci de haut en bas (code non testé), donc vous devrez trouver des bugs, mais l'idée est correcte.
// in the .h file
#import <UIKit/UIKit.h>
@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
// set up a mutable array which allows editing of the array
NSMutableArray *myFavoritesData;
}
// set up a retained property
@property (nonatomic, retain) NSMutableArray *myFavoritesData;
@end
// in the .m file
// synthesize the getters/setters for your array
@synthesize myFavoritesData;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// find cell that was just pressed
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
// get pointer for the label that we want to identify the cell by
// the tag in this case is set to '5' in Interface Builder in the options for the label
UILabel *someLabel;
someLabel = (UILabel *)[cell viewWithTag:5];
NSString *tmpFavorite = someLabel.text;
// get the count of the current array and use that for the "new" row since the count
// will always be 1 larger than the last object in the array (arrays start at 0, counts start at 1)
NSUInteger newRow = [self.myFavoritesData count];
[self.myFavoritesData insertObject:tmpFavorite atIndex:newRow];
}
// save the mutable array into NSUserDefaults when the view is about to disappear
- (void) viewWillDisappear:(BOOL)animated
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:self.myFavoritesData forKey:@"MyFavorites"];
// synchronize the data now instead of waiting for the OS to synchronize it at some
// arbitrary time in the future
[userDefaults synchronize];
}
Une fois que vous êtes dans le nouveau contrôleur de vue, vous pouvez lire juste du NSUserDefaults
et alimenter le tableau du tableau. Par exemple:
// favorites view controller
- (void)viewDidLoad {
[super viewDidLoad];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *tmpArray = [[NSMutableArray alloc] init];
tmpArray = [[userDefaults objectForKey:@"MyFavorites"] mutableCopy];
if ([tmpArray count] == 0) {
//
// no favorites have ever been saved
//
} else {
// load the favorites into some array you synthesized just like before
self.tableFavoritesData = [[NSMutableArray alloc] init];
self.tableFavoritesData = [[userDefaults objectForKey:@"MyFavorites"] mutableCopy];
NSLog(@"favorites data is %d and %@", [self.tableFavoritesData count], self.tableFavoritesData);
}
[tmpArray release];
}
Ensuite, dans votre cellForRowAtIndexPath
des favoris View Controller vous suffit d'accéder chaque chaîne dans chaque index du tableau (donc, chaîne pour l'index 0 entrerait dans la ligne 0, chaîne pour index 1 entreraient en rangée 1, etc) et c'est ce qui peuplerait votre table de favoris!
Essayez-le.
merci beaucoup j'ai eu la structure de ce que je suis en train d'essayer de réaliser maintenant ... un petit problème im ayant pourtant c'est que je ne veux pas obtenir le contenu des cellules. Je veux obtenir le contenu de la vue affichée par la cellule. Je devine que vous devez changer ce code UILabel * someLabel; someLabel = (UILabel *) [cellule viewWithTag: 5]; NSString * tmpFavorite = someLabel.text; ? i essayé d'utiliser le (? [[RootArray objectAtIndex: indexPath] ensemble], mais il n'a pas vraiment travailler sur :( –
Comment avez-vous 'rootArray' défini S'il est défini similaire à la façon dont je définissais mes tableaux mutables ci-dessus, vous feriez: '[self.rootArray objectAtIndex.indexPath.row];' où 'indexPath.row' est un int et spécifie la ligne courante pressée – iwasrobbed
- 1. Comment allez-vous créer un onglet favoris pour une application iphone?
- 2. iPhone Implémenter une liste de favoris sans données de base?
- 3. Documents Favoris de l'utilisateur Sharepoint
- 4. Récupérer les favoris de flickr
- 5. Ouvrir l'affichage dans un autre onglet - iphone
- 6. Ajouter aux favoris
- 7. iphone: problème de création appID?
- 8. Création du bouton Favoris dans l'application Android (besoin de passer l'objet sans changer d'activité)
- 9. liens favoris avec jqueryui sortable
- 10. Comment obtenir des favoris star
- 11. ajouter aux favoris bouton help
- 12. iPhone - Onglet de restauration à la vue d'origine
- 13. obtenir 5 favoris aléatoires de flickr
- 14. Twitter Favoris et plus de 20
- 15. Favoris restitutions de clavier Visual Studio?
- 16. comment se faire dans le bouton comme dans l'onglet favoris de l'application téléphone iphone
- 17. Comment puis-je accéder à la liste des contacts favoris de mon application iPhone?
- 18. Création de vidéos YouTube dans l'application iPhone
- 19. iPhone: création d'UIBarButtonItem en forme de flèche
- 20. Création de plusieurs versions d'une application iPhone
- 21. iPhone - création d'une vue de chargement
- 22. Création d'une application de carte IPhone
- 23. Type d'application iPhone/iPad/iOS - vue modale, onglet, autre?
- 24. Est-il possible d'ajouter par programme un contact iPhone aux favoris du téléphone?
- 25. Facilité d'utilisation - Comment modifier les favoris?
- 26. Enregistrer des "favoris" dans un cookie Rails?
- 27. Intention URI pour aller aux contacts favoris
- 28. "Ajouter aux favoris" avec JavaScript dans Opera
- 29. « Favoris Changing » infobulle en Java Aide
- 30. MySQL: Non tableau unique,/alias: 'favoris'
C'est possible. Votre question, cependant, est trop vague. –