/ / parse: vérifiez la colonne puis utilisez les données de cette ligne - swift, parse.com

parse: cocher la colonne puis utiliser les données de cette ligne - swift, parse.com

entrer la description de l'image ici

Est-il possible de vérifier la colonne Parse "ID" pour 0 (n'importe quel nombre) puis si 0 (celui de la colonne) équivaut à indexPath.row 0 (la première cellule) il affiche les données de la ligne de 0 dans Parse? L'image ci-dessus est la classe du viewcontroller, les données de la cellule tableview sont dans une autre classe.

ID: numéro qui sera vérifié avec le indexPath.row

navTitle: titre de la barre de navigation

le titre de l'article: UILabel

écrit: UILabel

rendez-vous amoureux: UILabel

article: UITextView

Modifier pour un éventuel doublon: Ce n'est pas un doublon, l'autre question répond à la manière de déplacer des données d'une cellule vers un contrôleur de vue en utilisant prepareForSegue. Cette question demande comment, si possible, vérifier une colonne sur Parse et si un nombre de cette colonne correspond à un indexPath.row il utilisera les données de cette ligne à laquelle correspond le nombre.

Réponses:

1 pour la réponse № 1

Je comprends maintenant que vous souhaitez afficher les donnéesqui est approprié pour un chemin d'index donné dans un contrôleur de vue de détail, après avoir tapé sur la cellule au niveau dudit chemin d'index. Cela suppose que vous affichez correctement les données appropriées dans la vue de table, et maintenant la question est de savoir comment obtenir et afficher les données pertinentes pour la ligne sur laquelle l'utilisateur a tapé dans un nouveau contrôleur de vue.

Pour ce faire, vous pouvez ajouter une propriété interne à votre contrôleur de vue détaillée qui est un Int. Définissez cette propriété sur le "chemin d'index sélectionné" de la vue de table row avant l'affichage du contrôleur de vue de détail, peut-être dans prepareForSegue par exemple.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let detailVC = segue.destinationViewController as? DetailViewController {
if let selectedIndexPath = self.tableView.indexPathForSelectedRow {
detailVC.integerIdentifier = selectedIndexPath.row
}
}
}

Maintenant, dans ce contrôleur de vue détaillée, vous pouvezaccéder à la valeur de la propriété et rechercher les informations dont vous avez besoin à partir de Parse étant donné cette valeur. (Et vous souhaiterez probablement afficher des commentaires à l'utilisateur pour l'informer que vous téléchargez les données appropriées à afficher.) Par exemple, vous pourriez avoir le code suivant dans une fonction que vous appelez viewDidLoad:

let query = PFQuery(className: "eventsDetail")
query.whereKey("ID", equalTo: self.integerIdentifier)
query.getFirstObjectInBackgroundWithBlock { (detail: PFObject?, error: NSError?) -> Void in
//update your labels etc using the detail (Optional) PFObject
}

Je veux noter, surtout, que ce n'est pas un excellent moyen de stocker les donnéesdans Parse. Il ne faut pas lier les données à la façon dont elles seront affichées, ce qui est le cas ici en liant un identifiant au chemin d'index, forçant l'élément avec l'ID 0 à être comme par magie les détails de l'article appropriés pour la première cellule du tableau. Vous souhaiterez peut-être revoir la conception de la base de données. Par exemple, votre autre classe utilisée pour générer une liste d'événements pourrait peut-être avoir un pointeur vers la classe de détail de l'événement, ce qui vous permettrait d'obtenir les détails de l'événement avant de sélectionner un événement et de ne pas avoir à demander à nouveau les détails.



Réponse originale:
Je comprends que vous souhaitez afficher les données danscette classe Parse dans votre application dans une vue de tableau, où la première cellule de vue de tableau affiche les données pour l'ID 0, la deuxième cellule affiche les données pour l'ID 1, etc.

Pour ce faire, vous voudrez interroger ceciclasse et appliquez un ordre croissant sur la colonne "ID". Vous obtiendrez un tableau de PFObjects qui sont triés comme vous le souhaitez - le plus petit au plus grand ID, que vous pouvez utiliser pour la source de données de votre vue de table pour les mapper un à un.

Votre requête peut ressembler à ceci:

let query = PFQuery(className: "Article")
query.orderByAscending("ID")
query.findObjectsInBackgroundWithBlock { (articles: [PFObject]?, error: NSError?) -> Void in
//use articles array as the data source, update the interface
self.articles = articles
self.tableView.reloadData()
}

Maintenant, dans vos méthodes de source de données de vue de table, utilisez ce tableau pour remplir la table:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.articles.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let article = self.articles[indexPath.row]
//... configure cell, show article title, etc, return cell
}