2016-04-05 9 views
0

Ich verwende CoreData in meinem Wörterbuch-App und was ich erreichen möchte, zeigt eine Liste von Wörtern in Spalten in tableview und ich habe das erfolgreich implementiert. Außerdem habe ich es geschafft, den indexPath Wert durch segue in eine andere schnelle Datei zu übertragen.NSIndexPath: Abrufen von Daten aus CoreData

Da beide Dateien Daten aus der gleichen Datenbank abrufen, war indexPath gut genug und ich konnte es in einem anderen View-Controller zeigen.

Ich möchte jedoch die linken und rechten Swipe-Funktionen implementieren, um andere Wörter in Ansicht Controller anzuzeigen. Und es war einfach, wenn es keine Abschnitte gab.

Dies ist, was ich in UITableViewController.swift für segue haben:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showWordDetail" { 

     let destination = segue.destinationViewController as! WordDetailViewController 
     if let indexPath = self.tableView?.indexPathForCell(sender as! EduDicTableViewCell) { 
      destination.receivedindexPath = indexPath 
     } 
    } 
} 

dies der Code von UIViewController.swift ist, die empfängt indexPath:

und dies ist die Ausgabe von IndexPath

let object = fetchedResultsController?.objectAtIndexPath(receivedindexPath) as? WordItem 

    wordLabel.text = object?.word 
:

<NSIndexPath: 0xc000000000200016> {length = 2, path = 0 - 1} 

Gibt es trotzdem, dass ich andere Daten anzeigen kann, mit Hilfe von indexPath?

Danke für das Lesen.

+0

Sie können den Index Pfad erhöhen bzw. verringern, indem die Reihenteil bekommen, ändern und erstellen new indexPath, wenn der Zeilenwert kleiner als die Anzahl der Elemente in der abgerufenenResultsController ist. – vadian

Antwort

1

Vielleicht tun

destination.receivedindexPath = NSIndexPath(forRow: indexPath.row, inSection: 0) 

oder

destination.receivedindexPath = NSIndexPath(forRow: indexPath.row, inSection: 1) 

vorausgesetzt, das Ziel Tableview hat einen Abschnitt