Контейнерное добавление

У меня есть ViewController с представлением Container View который имеет встроенный TableViewController .

Теперь я хотел бы получить доступ к TableView в ViewController , как я могу сделать выход для этого?

Я попытался добавить Container View в качестве выхода, но я не могу получить доступ к встроенному TableViewController .

введите описание изображения здесь

Вы не можете сделать выход напрямую, потому что представление таблицы находится в другой сцене (контроллер просмотра), но вы можете получить доступ к представлению таблицы, как только у вас есть ссылка на экземпляр UITableViewController . Есть несколько разных способов сделать это.

Во-первых, вы можете использовать свойство UIViewController вашего подкласса 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 } } 

Лично я предпочитаю этот второй подход, поскольку я думаю, что он «чище»,

Создайте выход в дочернем контроллере View и получите доступ к нему с помощью self.childViewControllers.lastObject (если у вас есть только один ребенок, в противном случае используйте objectAtIndex 🙂

  • Swift - сохранить флажки, выбранные в TableView
  • Предотвращение повторного использования пользовательских ячеек в виде таблицы Swift
  • TableView с двумя экземплярами NSFetchedResultsController
  • Получение разделов UITableView из NSFetchedResultsController с использованием отношения «ко многим»
  • Как получить UITableViewCell из одного из его подзонов
  • XCode6 / Swift: непризнанный селектор, отправленный в экземпляр
  • Заполнение простого UITableView в MonoTouch с помощью UITableViewDataSource - как использовать UITableViewDataSource
  • Задержка после didSelectRowAtIndexPath
  • Программно запускать кнопку UITableViewCell «Удалить»
  • Использование автоматической компоновки в UITableViewCell, содержащей UICollectionView с асинхронной загрузкой изображения
  • Представьте представление по умолчанию вместо tableview, если источник данных пуст
  • Давайте будем гением компьютера.