Hallo zusammen,
ich habe vor ein paar Tagen mit dem coden in Swift angefangen, da mich das Thema Software-Entwicklung schon immer sehr interessiert hat und ich mich schon sehr lange damit beschäftigen wollte. Dies habe ich dann endlich mal in die Tat umgesetzt und mich mit Büchern und Udemy Kursen eingedeckt.
Ich habe nun ein Problem, was ich nach zwei Tagen leider immer noch nicht gelöst bekommen habe ich hoffe, dass Ihr mir hier weiterhelfen könnt.
Ich habe zwei TableView Controller, der eine gibt eine "Hauptkategorie" aus einem Array aus und der zweite dann eine "Unterkategorie" aus einem Array.
Hauptkategorie "Rind" (klicken) -> Unterkategorie "Filet"
Nun ist es so, dass er den zweiten tableview Controller "durchläuft" und zweimal aufruft. Ist schwer zu erklären... Ich stelle mal den Code der beiden Controller hier ein:
Erster TableViewController:
Alles anzeigen
Zweiter TableViewController
Alles anzeigen
Ich hoffe ich konnte mich klar genüg ausdrücken und freue mich über eine Antwort und Hilfestellung.
Vielen Dank!
ich habe vor ein paar Tagen mit dem coden in Swift angefangen, da mich das Thema Software-Entwicklung schon immer sehr interessiert hat und ich mich schon sehr lange damit beschäftigen wollte. Dies habe ich dann endlich mal in die Tat umgesetzt und mich mit Büchern und Udemy Kursen eingedeckt.
Ich habe nun ein Problem, was ich nach zwei Tagen leider immer noch nicht gelöst bekommen habe ich hoffe, dass Ihr mir hier weiterhelfen könnt.
Ich habe zwei TableView Controller, der eine gibt eine "Hauptkategorie" aus einem Array aus und der zweite dann eine "Unterkategorie" aus einem Array.
Hauptkategorie "Rind" (klicken) -> Unterkategorie "Filet"
Nun ist es so, dass er den zweiten tableview Controller "durchläuft" und zweimal aufruft. Ist schwer zu erklären... Ich stelle mal den Code der beiden Controller hier ein:
Erster TableViewController:
Quellcode
- //
- // mainCategorieTVC.swift
- // Garzeiten
- //
- // Created by René Corten on 09.05.19.
- // Copyright © 2019 René Corten. All rights reserved.
- //
- import UIKit
- class mainCategorieTVC: UITableViewController {
- // Kategorien anlegen
- var categories = ["Rind", "Schwein"]
- // Drückt der Nutzer auf Zeile 1, wird der Index 0 an den zweiten Controller gesendet.
- var categorieIndex: Int = 0
- override func viewDidLoad() {
- super.viewDidLoad()
- tableView.delegate = self
- tableView.dataSource = self
- // Zeilenhöhe anpassen
- tableView.rowHeight = 80.0
- }
- // Vorbereiten der Übergabe an zweiten Viewcontroller
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- if segue.identifier == "showSubCategorieTVC" {
- let subCategorieVC = segue.destination as! subCategorieTVC
- subCategorieVC.categorieIndex = categorieIndex
- }
- }
- // MARK: - Table view data source
- override func numberOfSections(in tableView: UITableView) -> Int {
- // #warning Incomplete implementation, return the number of sections
- return 1
- }
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- // #warning Incomplete implementation, return the number of rows
- return categories.count
- }
- override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
- categorieIndex = indexPath.row
- performSegue(withIdentifier: "showSubCategorieTVC", sender: self)
- print("Du hast auf die Tabellenzeile \(indexPath.row) gedrückt")
- }
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: "mainCategorieCell", for: indexPath)
- cell.textLabel?.text = categories[indexPath.row]
- return cell
- }
- }
Zweiter TableViewController
Quellcode
- //
- // subCategorieTVC.swift
- // Garzeiten
- //
- // Created by René Corten on 09.05.19.
- // Copyright © 2019 René Corten. All rights reserved.
- //
- import UIKit
- class subCategorieTVC: UITableViewController {
- let categorieData = [
- ["Filet"],
- ["Hüfte"]
- ]
- // Erhält den Wert vom ersten ViewController beim Übergang (segue)
- var categorieIndex: Int = 0
- override func viewDidLoad() {
- super.viewDidLoad()
- tableView.delegate = self
- tableView.dataSource = self
- }
- // MARK: - Table view data source
- override func numberOfSections(in tableView: UITableView) -> Int {
- // #warning Incomplete implementation, return the number of sections
- return 1
- }
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- // #warning Incomplete implementation, return the number of rows
- return categorieData[categorieIndex].count
- }
- override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
- print("Du hast auf die Tabellenzeile \(indexPath.row) gedrückt")
- }
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: "subCategorieCell", for: indexPath)
- cell.textLabel?.text = categorieData[categorieIndex][indexPath.row]
- return cell
- }
- }
Vielen Dank!
Als Neuling in der Softwareentwicklung durchlebe ich zur Zeit vielen Höhen und mindestens genauso viele Tiefen... ABER: Es macht einfach Riesenspaß zu coden!