2016-06-05 41 views
0

Ich sende Daten von einer Tabellenansichtsliste zu einer anderen Tabellenansicht, die als Detailansicht für die ausgewählte Zelle verwendet wird. Einfach -prepareForSegue Senden von Daten an die Tabellenansicht in einer Containeransicht

Da ich jetzt eine statische Symbolleiste am unteren Rand der Detailansicht der Tabelle haben möchte. Ich muss den EventDetailTableViewController in einer Containeransicht auf einem UIViewController ändern. So kann ich dann einfach machen was ich will innerhalb des UIViewControllers.

Meine Frage ist, wie ich diese Daten immer noch an die eingebettete EventDetailTableViewController innerhalb der Containeransicht senden? Da das Segment jetzt mit der Containeransicht zum UIViewController gehen muss, muss ich auch sicherstellen, dass diese Daten an dieses TableView innerhalb des Containers übergeben werden.

+0

eine Instanz von EventDetailTableViewController sein hoffen Legen Sie dann seine Daten fest und übergeben Sie sie an UIViewController. Verwenden Sie in UIViewController viewdidload die EventDetailTableViewController-Instanz –

+0

Vielen Dank! Was meinst du mit dem Viewdidload die EventdetailTableViewController-Instanz? Nachdem ich eine Instanz erstellt und sie über das Segment an den UIViewcontroller übergeben habe, wie würde ich sie dann in den EventDetailTableViewController in ihrem Container bekommen? –

+0

Machen Sie die Instanz zu einem Kindcontroller und legen Sie dann die Tabellenansicht in die gewünschte Containeransicht. –

Antwort

0

i Farbe anstelle von Daten:
EventDetailTableViewController ->ViewController3
UIViewController ->ViewController2 wie diese versuchen:

class ViewController: UIViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    let tableVc = ViewController3() 
    tableVc.color = UIColor.redColor() 
    let vc = ViewController2() 
    vc.tableViewController = tableVc 
    self.navigationController?.pushViewController(vc, animated: true) 

} 

} 

class ViewController2: UIViewController { 

var tableViewController:ViewController3! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    view.backgroundColor = UIColor.yellowColor() 
    tableViewController.willMoveToParentViewController(self) 
    addChildViewController(tableViewController) 
    tableViewController.view.frame = CGRect(x: 0, y: 100, width: 100, height: 100) 
    view.addSubview(tableViewController.view) 
    tableViewController.didMoveToParentViewController(self) 


} 
} 
class ViewController3: UITableViewController { 

var color :UIColor! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.view.backgroundColor = color 
} 
} 

es hilfreich :-)

+0

Danke Ich verstehe das jetzt, aus irgendeinem Grund, seit dieser TabelleViewController als SubView setzen. Es erkennt die Zellkennungen nicht. Sehr seltsam .. irgendwelche Ideen? –

+0

@MattPorter fügen Sie diese: tableViewController.didMoveToParentViewController (self), ich bearbeitet, wenn nicht arbeiten, zeigen Sie mir mehr Details –