2016-10-25 5 views
0

Ich bin ein Anfänger in Swift das eigentlich meine zweite Woche. Ich versuche, mich selbst zu lehren, indem ich einfachen Code erstelle.TableView, Array und segue

ich eine Tabelle erstellen Klasse und Array,

var cell = [Cell]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     cell = [ 
      Cell(Title:"cell1", number: 5), 
      Cell(Title:"cell2", number: 3), 
      Cell(Title:"cell3", number: 4), 
] 
     // Do any additional setup after loading the view, typically from a nib. 
      } 

Wenn ich eine der Zellen klicken I zum nächsten Controller bewegen. Hier ist die Idee, die ganze Zelle wird mich auf dem gleichen Controller der einzige Unterschied ist die Anzahl der Zellen, so möchte ich die Daten zu übergeben

Zelle [Zeile] .Anzahl

zum nächsten Controller

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "next" { 
     if let indexPath = tableView.indexPathForSelectedRow { 
      let selectedcell = cell[indexPath.row] 
      let dest = (segue.destination as! UINavigationController).topViewController as! DetailViewController 

      dest.cells = selectedcell 


     }} 

Mein Problem ist, ich war nicht in der Lage, Zellen in DetailViewController vielleicht ihren Code ist für die Weitergabe der Daten von Array oder etwas. Ich möchte cells.number als die Anzahl der Zellen verwenden, wenn ich die Tabelle erstelle. Ich kenne es auf einfache Weise, indem ich jede Zelle auf einen anderen Controller zeige, aber wenn ich große Daten habe, dauert es ewig.

danke

+0

was ist der Datentyp dest.cells? ist es ein Array von Cell? Wenn dies der Fall ist, können Sie die Cell-Instanz keinem Array von Zellen zuweisen –

+0

Was ist das Problem, das Sie gerade erleben? – dirtydanee

+0

Was ist dein Problem? – jalone

Antwort

0

Ich denke, das Problem mit ist

dest.cells = selectedcell 

Sie versuchen, eine Cell-Objekt zu einer Variablen (i, aus dem Plural annehmen), die passieren eine Reihe von Zell s.

  • Wenn Sie nur 1 Zelle korrigieren nur den Zieltyp Cell passieren.

  • Wenn Sie ein Array von Zellen übergeben wollen, dann müssen Sie uns sagen, mit welcher Politik

  • Wenn Sie im Ziel View-Controller so viele neue Zellen, wie die Anzahl der ausgewählten definiert instanziiert wollen cell.number Übergeben Sie die Zelle dann, während Sie vorgehen, und implementieren Sie in der Zielansicht die erforderliche uitableviewdelegate/datasource, und instanziieren Sie sie.

[Kommentar sein sollte, aber zu lang]