Вы не можете сделать выход непосредственно, потому что представление таблицы находится в другой сцене (контроллер просмотра), но вы можете получить доступ к представлению таблицы, как только у вас есть ссылка на экземпляр UITableViewController
. Есть несколько разных способов сделать это.
Прежде всего, вы можете использовать свойство childViewControllers
вашего подкласса UIViewController
. Если вы знаете, что есть только один ребенок, тогда вы можете получить к нему доступ напрямую, иначе вам нужно определить, какой из них является правильным, скажем, путем циклического перехода по массиву.
let myTableViewController = self.childViewControllers[0] as! UITableViewController
let theTableView = myTableViewController.tableView
Второй вариант доступа к UITableViewController
во время встраивания Segue. Если вы нажмете на встроенный segue в своем раскадровке, вы можете дать ему идентификатор, как и в любом другом сегменте. Затем вы можете реализовать prepareForSegue
и захватить встроенный UITableViewController
экземпляр -
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "tableviewEmbed") {
let myTableViewController = segue.destinationViewController as! UITableViewController
let theTableView = myTableViewController.tableView
}
}
Лично я предпочитаю этот второй подход, как я думаю, что это «чище»
Второй подход породы! – TalL