IndexPath.row geht irgendwie verloren..

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • IndexPath.row geht irgendwie verloren..

    Hallo mal wieder und ich habe mal wieder eine Frage an die Spezialisten respektiv habe ich ein seltsames Verhalten unter Beobachtung..


    ich selektiere in einer TableView Cell über eine Serarchbar

    Quellcode

    1. func setupNavBar() {
    2. navigationController?.navigationBar.prefersLargeTitles = true
    3. navigationItem.searchController = searchController
    4. navigationItem.hidesSearchBarWhenScrolling = false
    5. }
    vierstellige Nummern aus...

    Funktioniert soweit und springe via Segue in eine andere View.. funktioniert super

    über die Searchbar wird mit Komplettierung der Zahlen die Auswahl kleiner auch OK ... bis eine übrig bleibt... und auch die Verzweigt über SEGUE in den passenden VIEW..soweit OK
    Aber nun kommts..override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath)

    in dieser Funktion möchte ich

    Quellcode

    1. let alertController = UIAlertController(title: "Wichtige Infos", message: ("Anfahrt ! \(anfahrtdetailview) \nWichitg ! \(wichtigview)" ), preferredStyle: .actionSheet)
    2. let defaultAction = UIAlertAction(title: "Close", style: .cancel, handler: nil)
    3. alertController.addAction(defaultAction)
    Informationen ausgeben die Relevant sind ..
    das Funktioniert so lange gut, solange ich im Searchcontroller nicht auf ein Single Element reduziert habe..
    ab dem Punkt wirft er mir immer die Array ROW 0 aus.. warum auch immer.. die Search und der Segue funktioniert ohne Probleme...

    wird die Suche wieder mit CLEAN bereinigt funktioniert wieder alles wie es soll..

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von motiongroup ()

  • Abgesehen davon, dass ich Schwierigkeiten habe, Deinem Post zu folgen (und die Code-Schnipsel irgendwie nicht zum Text passen): Dir ist schon klar, dass die erste Zeile den Index 0 hat?

    Vielleicht überarbeitest Du Deine Frage noch einmal...

    Mattes

    P.S.: Nach wiederholtem Lesen meine ich jetzt, Dein Vorgehen verstanden zu habe :D Vielleicht bin ich auch noch zu müde. Hinweis bleibt...
    Diese Seite bleibt aus technischen Gründen unbedruckt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MyMattes ()

  • Sorry war gerade auf einer skitour

    Wenn in der searchbar ein Element übrig bleibt wäre es null es wird aber der erste Wert des Plist Arrays angezeigt und nicht der des Ergebnisses im Tableview cell welches angezeigt wird..

    Bleiben im Ergebnis zwei stehen funktioniert es komischerweise

    Ich mache mal ein paar scrs. um es zu erklären.


    1 Kopie.jpegsind alle angezeigt funktioniert es auch ohne wenn und aber..
    2.jpeghier ist es noch OK so sich noch min. zwei in der Auswahl befinden..

    3.jpegund hier ist der Fehler, es wird der Wert aus TBM 5001 und nicht der Wert von TBM 5009 angezeigt.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von motiongroup ()

  • Dann ist es klar. Bei der gefilterten Liste bezieht sich der IndexPath natürlich auf die gefilterte und nicht auf die komplette Liste. ;)

    Sprich Du musst die Daten für die Info aus der gefilterten Liste und nicht aus der kompletten Liste verwenden. Dass es mit 2 Einträgen in der Ergebnisliste funktioniert hat ist wohl Zufall bzw. ein Fehler im Testverfahren. Filtere mal so, dass TBM 5001 und/oder TBM 5009 wegfallen und tippe mal auf TBM 5012 oder einen der folgenden Einträge. Dann sollte Dir auch die falsche Info angezeigt werden. ;)
  • Ha... das ist es... nussratte hatte es schon richtig angezeigt und Du hast es für die deppen wie mich aufgedröselt...
    werde mich morgen gleich mal daran machen es zu überarbeiten

    Vielen Dank McDan

    Ps ja das mit 5012 hat mir die Augen komplett 8o geöffnet