Почему я не могу вызвать свой IBOutlet, чтобы сделать его делегатом в XCode 9.3? - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь сделать UITableView делегированным, чтобы я мог использовать его свойства в моем проекте.Но я не могу вызвать мой ToDoListTable IBOutlet, чтобы сделать его делегатом, выполнив ToDoListTable.delegate = self.Я приложил изображение ниже, показывающее, что XCode даже не предлагает это.Поэтому я не уверен, что мне следует делать.

A Photo Of my Code

Ответы [ 5 ]

0 голосов
/ 27 мая 2018

вам нужно "слабое" после: @IBOutlet и перед var

@IBOutlet weak var tableView: UITableView!
0 голосов
/ 26 мая 2018

Добавьте этот фрагмент кода в ваш ToDoListViewController .

func viewDidLoad() {
    super.viewDidLoad()
    ToDoListTable.delegate = self
    ToDoListTable.dataSource = self
}

Вы должны назначить свой делегат в методе viewDidLoad ().Также рекомендуется использовать нижний регистр верблюда, чтобы назвать свой IBOutlet для лучшей практики кодирования.Произнесите имя toDoListTable лучше, чем ToDoListTable .

0 голосов
/ 26 мая 2018

Необходимо указать делегатов в viewdidload, например, ToDoListTable.delegate = self ToDoListTable.datasource = self

0 голосов
/ 26 мая 2018

Вы можете сделать это программно, написав, например,

`toDoListTable.delegate = self` (just write it if you are not able to get the instance of tableview. sometime it's just xcode issue)

или использовать раскадровку и выбрать табличное представление, нажать на инспектор соединений (последний) и добавить соединение выхода делегата в Viewcontroller.

0 голосов
/ 26 мая 2018

Если вы хотите передать делегата с помощью раскадровки, см. Прилагаемое изображение.

For StoryBoard please see this image вы не дали datasource или Delegate в StoryBord, чем вписать вViewDidLoad

tableview.delegate = self

tableview.dataSource = self
...