Использование View Controller в качестве делегата для вспомогательного представления завершается неудачно с неожиданно найденным nil при развертывании необязательного - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть View Controller под названием CompanyTableView, который не является основным View Controller - хотя это может быть неактуально

CompanyTableView имеет функцию

func getNxtKey() -> Int {
    return Int(CDM.getMaxID())
}

Эта функция вызывает функцию в классе модели данных общего экземпляра с именем CDM.

Я пытаюсь вызвать функцию из вспомогательного контроллера представления, используя CompanyTableView в качестве делегата - это контроллер представления, который вызывает вспомогательное представление

Во вспомогательном контроллере вида у меня:

var delegate: AnyObject?

и затем:

вызывается кнопкой добавления:

// Кнопка добавления нового контакта или сохранения правки

 @IBAction func btnAddCompany(_ sender: Any) {
  //i have used the following code:

    ic = (delegate as! CompanyTableView).getNxtKey()

На этом этапе выполнение завершается неудачно с ошибкой, неожиданно найденной nil при развертывании необязательного

1 Ответ

0 голосов
/ 14 сентября 2018

Я новичок в Stack Overflow, поэтому извиняюсь, что не знаю этикета ответа на ваши собственные вопросы.

Ошибка, которую я сделал, заключалась в том, что при подготовке к переходу я не указал, что делегат наконтроллер представления назначения был self.

С кодом следующим образом:

// Установите контроллер назначения и передайте представленный объект как repObj let auxView = segue.destinationController как!AddCompanyController auxView.delegate = self auxView.representedObject = repObj

Как только я добавил auxView.delegate = self, все работало как ожидалось

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...