Nie można dokonać bezpośrednio ponieważ wylot widok tabeli znajduje się w innej scenie (kontroler widoku), ale dostęp do widoku table można uzyskać po uzyskaniu odwołania do instancji UITableViewController
. Istnieje kilka różnych sposobów robienia tego.
Najpierw można użyć właściwości childViewControllers
podklasy UIViewController
. Jeśli wiesz, że istnieje tylko jedno dziecko, możesz uzyskać do niego bezpośredni dostęp, w przeciwnym razie musisz określić, które dziecko jest poprawne, powiedzmy, przechodząc przez tablicę.
let myTableViewController = self.childViewControllers[0] as! UITableViewController
let theTableView = myTableViewController.tableView
Drugą opcją jest dostęp do UITableViewController
podczas osadzania. Jeśli klikniesz na osadzony segue w swoim scenorysie, możesz nadać mu identyfikator identyczny z każdym innym segue. Wtedy można wdrożyć prepareForSegue
i chwycić wbudowanego UITableViewController
instancji -
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "tableviewEmbed") {
let myTableViewController = segue.destinationViewController as! UITableViewController
let theTableView = myTableViewController.tableView
}
}
Osobiście wolę to drugie podejście, ponieważ myślę, że to jest „czystszy”
Drugie podejście skały! – TalL