self.tableView.delegate = self Swift

Если у меня есть UIViewController, и я подключаю tableView к нему в раскадровки, подключаю его к таблице, а затем подключайте методы источника данных и делегирования через инспектор соединений (cntrl + drag to vc orange circle icon), мне все еще нужно добавить self.tableView.delegate = self для реального контроллера представления? Конечно, в фактическом vc я реализую протоколы данных / делегата tableView.

Также я предполагаю, что любой ответ будет таким же, если бы контроллер коллекционного представления был подключен через раскадровку таким же образом?

Каковы плюсы и минусы его добавления?

class FooController:UIViewController, UITableViewDataSource, UITableViewDelegate{ @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() self.tableView.delegate = self } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { { func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { { } 

3 Solutions collect form web for “self.tableView.delegate = self Swift”

мне все еще нужно добавить self.tableView.delegate = self к фактическому контроллеру представления?

Нет. Вы делаете это, установив соединение в раскадровке. Они – одно и то же: назначение свойства delegate , выраженное двумя разными способами (один в коде, один «графически» в Interface Builder). Вам нужно только сделать один из них.

Но если ваш контроллер представлений был контроллером табличного представления (подкласс UITableViewController), то вы бы этого не сделали, потому что контроллер табличного представления уже является источником данных и делегатом представления табличного представления. То же самое верно для контроллера представления коллекции (подкласс UICollectionViewController); он уже является источником данных и делегатом коллекции.

Я обычно устанавливаю delegate и dataSource программно в режиме dataSource View Controller. Потому что иногда я пропустил, чтобы установить их в nib, или я создал свой табличный вид по кодированию.

Как ответ Мэтта, они одинаковы. Вы можете выбрать один из способов сделать вас счастливым. Счастливое кодирование, bro /.

Я согласен с ответом Matt и Quang, но иногда нам нужно повторно использовать один и тот же tableview и его источник делегирования и данных в другом классе ViewController, тогда соединение с выходом для источника данных и делегата может не работать, что означает, что методы ваших делегатов не могут быть вызваны.

Пример –

У меня есть ViewController (класс A) с табличным представлением. Мне нужно повторно использовать весь вид этого контроллера для другого класса (класс B)

A.view.addSubview (B.view)

Поэтому в этом случае вам нужно будет написать ниже коды

 Class A:UIViewController, UITableViewDataSource, UITableViewDelegate{ @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() self.tableView.delegate = self self.tableView.datasource = self } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { { func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { } 
  • Создать индекс для UITableView из NSArray
  • UITableView scrollToRowAtIndexPath не работает для последних 4
  • Цель c - Лучшая практика для обработки события нажатия кнопки для кнопки пользовательского UITableViewCell
  • Заголовки заголовков UITableView по месяцам дат в массиве
  • Галерея хороших дизайнов UITableView
  • Развернуть размер метки / ячейки на основе размера текста в UITableView Swift
  • tableView: cellForRowAtIndexPath вызывается с nil indexPath после удаления элемента
  • iOS - Горизонтальное UIScrollView с несколькими UITableViews
  • Что вызывает метод setSelected: NO автоматически
  • Загрузка данных через одну секунду в uitableview. Любой альтернативный способ устранить эту задержку
  • Как включить удаленное удаление UITableView вместе с горизонтальной прокруткой страницы
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.