Non si può fare una presa direttamente a causa la vista tabella si trova in una scena diversa (controller di visualizzazione), ma è possibile accedere a tableview dopo aver fatto riferimento all'istanza UITableViewController
. Ci sono un paio di modi diversi per farlo.
Innanzitutto, è possibile utilizzare la proprietà childViewControllers
della sottoclasse UIViewController
. Se sai che esiste un solo figlio, puoi accedervi direttamente, altrimenti devi determinare quale sia il bambino corretto, ad esempio eseguendo il ciclo attraverso l'array.
let myTableViewController = self.childViewControllers[0] as! UITableViewController
let theTableView = myTableViewController.tableView
La seconda opzione è accedere allo UITableViewController
durante la procedura di incorporamento. Se fai clic sui passaggi di incorporamento nello storyboard, puoi assegnargli un identificatore come con qualsiasi altro seguito. Quindi è possibile implementare prepareForSegue
e afferrare l'incorporato UITableViewController
esempio -
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "tableviewEmbed") {
let myTableViewController = segue.destinationViewController as! UITableViewController
let theTableView = myTableViewController.tableView
}
}
Personalmente, preferisco questo secondo approccio, come penso che sia 'pulita'
Second rocce approccio! – TalL