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 { } 
  • В пользовательской ячейке Prototype в UITableView значение UITextField заменяется другим прототипом Cell
  • Различное поведение для segue с использованием UISearchController
  • Как центрировать заголовки разделов UITableView
  • AFIetworking setImageWithURLRequest устанавливает изображение в неправильной ячейке после прокрутки (iOS, Swift)
  • В чем разница между deselectRowAtIndexPath и ячейкой setSelected?
  • Как получить размер между tableView и tabBar?
  • UITableView contentInset позволяет наблюдать за таблицей горизонтально в дополнение к вертикали
  • Как вызвать pickerview при выборе ячейки в таблицеView
  • Изменение размера UITableViewCell, содержащего UITextView при вводе текста
  • UITableView setEditing к NO не изменяет barButtonItem назад
  • Как выполнить поиск в UITableView
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.