2016-08-02 10 views
0

[Übertragung von Daten von einem TableViewCell zu einem anderen TableViewCell] [1]Ist es möglich, Daten von einer TableViewCell zu einer anderen TableViewCell zu übertragen, indem Sie verschiedene? segues

I CountriesViewController mit tableView haben, wo eine Liste der verschiedenen Länder ist. Wenn ich ein Land wähle, möchte ich PlacesViewController mit tableView bekommen, die verschiedene Standorte in diesem Land zeigt. Wenn ich ein anderes Land in CountriesViewController wähle, möchte ich eine andere Liste der mit diesem Land verbundenen Standorte erhalten.

Ist es möglich?

First ViewController

Second View Controller

Wenn jemand irgendwelche Vorschläge hatte und einige Code-Beispiele zeigen, kann es wirklich groß sein würde!

Danke Jungs im Voraus!

+0

Sie tableViewCell sprechen oder nach Zelle auswählen, die Sie neue Ansicht oder eine neue Tableview Zelle haben, zeigen uns etwas mehr, Code oder Screenshot –

+0

Ich denke, Sie meinen, nach dem Tippen auf eine TableViewCell, möchten Sie einen anderen TableViewController öffnen, der andere Zellen anzeigt. Eine Zelle kann nicht alleine angezeigt werden. Eine Zelle muss in einem tableViewController enthalten sein. Es gibt nichts Neues oder Einzigartiges hier, einfach ein wenig Nachforschungen über die Weitergabe von Daten zwischen den ViewControllern, nur Unterschiede erkennen, welche Zelle angezapft wurde –

+0

, also ist dies eine ganze Tabelle ViewView Zelle nicht, aber nach der Auswahl der Zelle können Sie Controller für diese Tabellenansicht verwenden und implementieren Methode prepareForSegue, dort können Sie die Daten aus der Zelle übergeben. Insgesamt denke ich, dass Sie Ihre Idee überdenken sollten, wenn Sie etwas auswählen und Sie Daten anzeigen möchten, brauchen Sie möglicherweise keine neue Tabellenansicht, sondern nur eine ViewController –

Antwort

0

Zuerst müssen Sie aller Daten ein Array machen, dann, wenn eine bestimmte Zeile angezapft ist, können Sie den Namen des Landes in die zweite Tableview senden und dort filtern, dass nur die Array basierend auf dem Land. Der kode nur zeigt Ihnen, wie Sie überprüfen, welche Zeile abgegriffen wird und diese Informationen an die zweite Tableview senden:

var currentCountry : String! 

    class View1 : UITableViewController { 
     //tableview stuff 

     override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
      let country = tableView.cellForRowAtIndexPath(indexPath)?.textLabel?.text //Here I use the title to define which country is clicked 
      currentCountry = country 
     } 
    } 


    class View2 : UITableViewController { 
     var country = currentCountry 
     //more tableview stuff 
    } 
0

Also ich denke, ich muss dieses Stück Code implementieren, aber es ist nur für die Übertragung von Daten von ViewController mit TableView zu einem anderen ViewController ohne tableView.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "detailSegue" { 
     if let indexPath = tableView.indexPathForSelectedRow { 
      let destinationController = segue.destinationViewController as! 
PlacesViewController 
      destinationController.placesImage = 
countryImages1[indexPath.row] 
     } 
    } 
} 
+0

Welcher Teil sagt Ihnen, dass der zweite ohne Tabellenansicht sein sollte? Es kann eine Tabellenansicht haben - Sie sollten die übergebenen Daten (z. B. eine Länderkennung der Art) verwenden und basierend darauf die Orte (also die Daten für die neuen Zellen) laden. – Losiowaty

+0

@Losiowaty Bitte, könnten Sie mir näher erläutern, was ich tun soll? Ich habe es noch nicht verstanden! –

+0

@PavelBogart posten Sie bitte Ihre Codes, wenn sie nicht lizenziert sind. Dann können wir Ihnen weiterhelfen. – Ariel

Verwandte Themen