#ios #swift #delegates #protocols
#iOS #swift #делегаты #протоколы
Вопрос:
Я просто хочу отправить данные обратно на родительский контроллер представления.
Я пытаюсь реализовать делегирование с помощью моего второго контроллера представления.
protocol SendDataDelegate {
func sendData(data: String)
}
delegate?.sendData(data: metadataObj.stringValue!)
dismiss(animated: true, completion: nil)
Однако родительский контроллер представления получает данные более 16 раз.
Как я могу предотвратить более 2 раз?
Комментарии:
1. Это никогда не отправит его обратно более одного раза, добавьте свой код, который вы отправляете
sendData
, который по какой-то причине вызывается более одного раза.2. Что вы подразумеваете под «предотвращением»? Готовы ли вы сделать так, чтобы он вызывался только с первой попытки, а не каждый раз выскакивал из второго контроллера представления? Куда ты звонишь
delegate?.sendData(data: metadataObj.stringValue!)
?3. Это вопрос к вашему отладчику. Установите точку останова
sendData
и посмотрите, что происходит. Отправляются ли данные каждый раз одинаково?sendData
Всегда отправляется одним и тем же объектом? ВызываетсяsendData
только в одном месте или вызывается в нескольких местах? Копни глубже и разберись в этом.4. Вы проверили наличие возможных циклов сохранения? Я просто предполагаю, но, возможно, вы установили сильную ссылку на своего делегата.