Guten Abend zusammen,
ich suche aktuell eine Lösung für ein Problem mit Parse in Verbindung mit einem TableView in meiner App. Habe allerdings das Gefühlt einen Denkfehler zu haben.
Ich hoffe ihr könnt mir weiterhelfen
Und zwar möchte ich, dass, wenn ein Button auf einer Zelle des TableViews gedrückt wird, sich die Row in Parse aktualisiert und den aktuelle Nutzer der App der Row in Parse hinzufügt. Updatefunktion soweit fertig:
Alles anzeigen
Meine Frage, wie bekomme ich jetzt die Object-Id von der Zelle raus, die gedrückt wurde? Die Id wird in einem Array gespeichert wenn die Daten vom Server runtergeladen werden.
Ich danke euch für eure Hilfe
Tom
//Edit: Die Zelle, welche dem Nutzer angezeigt wird ist per IndexPath.row mit jeder Menge Daten und letztlich einer Row in Parse verbunden.
Hier einmal der restliche Code der Datei:
Alles anzeigen
ich suche aktuell eine Lösung für ein Problem mit Parse in Verbindung mit einem TableView in meiner App. Habe allerdings das Gefühlt einen Denkfehler zu haben.
Ich hoffe ihr könnt mir weiterhelfen
Und zwar möchte ich, dass, wenn ein Button auf einer Zelle des TableViews gedrückt wird, sich die Row in Parse aktualisiert und den aktuelle Nutzer der App der Row in Parse hinzufügt. Updatefunktion soweit fertig:
Quellcode
- @objc func apply2() {
- let query = PFQuery(className:"Jobs")
- query.getObjectInBackground(withId: "") { (job: PFObject?, error: Error?) in
- if let error = error {
- print(error.localizedDescription)
- } else if let jobs = job {
- jobs["ANuser"] = PFUser.current()
- jobs.saveInBackground(block: {(success, error) in
- if let error = error {
- self.displayAlert(title: "Bewerben Fehlgeschlagen", message: "Bitte versuche es später erneut!")
- print("Bewerben fehlgeschlagen")
- }else {
- print("Beworben")
- let vc: MainViewController!
- vc = MainViewController()
- vc.modalPresentationStyle = .fullScreen
- self.present(vc, animated: false)
- }
- })
- }
- }
- }
Meine Frage, wie bekomme ich jetzt die Object-Id von der Zelle raus, die gedrückt wurde? Die Id wird in einem Array gespeichert wenn die Daten vom Server runtergeladen werden.
Ich danke euch für eure Hilfe
Tom
//Edit: Die Zelle, welche dem Nutzer angezeigt wird ist per IndexPath.row mit jeder Menge Daten und letztlich einer Row in Parse verbunden.
Hier einmal der restliche Code der Datei:
Quellcode
- import UIKit
- import Parse
- class ChooseJobViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
- private var reuseIdentifer = "ChooseJobCell"
- var titleLabel: UILabel!
- var backButton: UIButton!
- let tableView = UITableView()
- var objectsIds = [String]()
- var choosedId = ""
- //var users = [String]()
- var jobNames = [String]()
- var regions = [String]()
- //var distances = [String]()
- var hours = [String]()
- var wages = [String]()
- var totalWages = [String]()
- override func viewDidLoad() {
- super.viewDidLoad()
- view.backgroundColor = .white
- retrieveJobs()
- createViewControllerItems()
- }
- func createViewControllerItems() {
- skip
- }
- @objc func backMenu() {
- let vc: MainViewController!
- vc = MainViewController()
- vc.modalPresentationStyle = .fullScreen
- present(vc, animated: false)
- }
- func numberOfSections(in tableView: UITableView) -> Int {
- return 1
- }
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return jobNames.count
- }
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifer, for: indexPath) as! ChooseJobCell
- //cell.userLabel.text = users[indexPath.row]
- cell.descriptionLabel.text = jobNames[indexPath.row]
- cell.regionLabel.text = regions[indexPath.row]
- //cell.distanceLabel.text = distances[indexPath.row]
- cell.wageLabel.text = "\(wages[indexPath.row])€"
- cell.hourLabel.text = "\(hours[indexPath.row]) Stunden"
- cell.finalWageLabel.text = "\(totalWages[indexPath.row])"
- cell.applyButton.setTitle("Bewerben", for: UIControl.State.normal)
- cell.applyButton.addTarget(self, action: #selector(apply), for: .touchUpInside)
- return cell
- }
- func retrieveJobs() {
- let query = PFQuery(className: "Jobs")
- query.findObjectsInBackground { (objects, error) in
- if let users = objects {
- for user in users {
- self.objectsIds.append(user.objectId!)
- //self.users.append(user["user"] as! String)
- self.jobNames.append(user["job"] as! String)
- self.regions.append(user["region"] as! String)
- //self.distances.append(user["distance"] as! String)
- self.hours.append(user["hour"] as! String)
- self.wages.append(user["wage"] as! String)
- self.totalWages.append(user["finalwage"] as! String)
- self.tableView.reloadData()
- }
- }
- }
- }
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Tom16092 ()