2017-02-17 5 views
0

Ich habe einige Zellen (Bild unten) erstellt von Registerkarte [] Ich muss korrekte Wert zu einer anderen Ansicht (moreViewController) auf dieser Ansicht habe ich 'nazwa' 'szerokosc' 'dlugosc' und ich muss speichern zu nazwa richtig "Ort" aus der Zelle usw. habe jemand eine Lösung? Ich suche, aber ich finde nicht:/Segue mit TableView

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){ 
    self.performSegue(withIdentifier: "more", sender: tableView) 
} 
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    let destViewController:moreViewController = segue.destination as! moreViewController 

} 

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return nazwaTab.count 
} 
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! cellTableViewCell 
    let nazwa = nazwaTab[indexPath.row] 
    let szerokosc = szerokoscTab[indexPath.row] 
    let dlugosc = dlugoscTab[indexPath.row] 
    cell.nazwaLabel.text = nazwa 
    cell.szerokoscLabel.text = szerokosc 
    cell.dlugoscLabel.text = dlugosc 
    return (cell) 
} 

IMAGE I CAN't "post images yet "

+0

Was zum nächsten Controller passieren ist das Problem? –

+0

Ihr Problem ist nicht klar. Was meinst du mit "muss in nawa richtig speichern" place "aus zelle etc?". Möchten Sie herausfinden, welches Bild/Tab angetippt wurde oder was? – Priyal

+0

Nein, wenn ich auf eine Zelle klicke, muss ich https://scr.hu/BL69P4 zu dieser Ansicht wechseln, aber wenn ich auf Platz 18 klicke, muss "nazwa" Platz 18 sein, wenn ich Platz 24 klicke "nazwa" muss Platz 24 sein – k0le

Antwort

1

Deklarieren Sie eine Variable nazwa in MoreViewController und weisen Sie ihr einen Wert zu, bevor Sie damit fortfahren.

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
      let identifier = segue.identifier ?? "" 
      switch identifier { 
       case "more": 
       guard let vc = segue.destination as? MoreViewController else { 
        return 
       } 
       vc.nazwa = self.clickedNazwa 
       default: 
       break 
      } 
} 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){ 
    self.clickedNazwa = nazwaTab[indexPath.row]   
    self.performSegue(withIdentifier: "more", sender: tableView) 

} 
+0

Oh ... Ich vergaß über didSelectRowAtIndexPath .... danke sooo viel – k0le

+0

Habt ihr Idee, warum ich es als "Optional" habe? – k0le

+0

Es ist gut, optional zu haben. Wenn Sie es nicht als optional haben wollen, deklarieren Sie 'nazwa' in' MoreViewController' mit '!' Am Ende des Typs. z.B. 'var nawas: String!' – MjZac

0

Sie eine ausgewählte Reihe an globalen Variablen speichern kann und es nach dem Aufruf verwenden: vorbereiten (für segue: UIStoryboardSegue, Absender: Alle?)

0

versuchen, diese

auf ausgewählten get Text hat die

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){ 
    let text = nazwaTab[indexPath.row] 
    self.performSegue(withIdentifier: "more", sender: text) 
} 



override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    let destViewController:moreViewController = segue.destination as! moreViewController 
    destViewController.text = sender as! String 

}