У меня проблемы с доступом и использованием переменной value
, которую я получил из поповера
Впервые здесь задают вопрос и довольно плохо знакомы с программированием, поэтому, пожалуйста, будьте осторожны. В моей программе есть всплывающее окно, которое отображает дату для выбора пользователем, а затем эта дата передается обратно в контроллер основного представления. Я проверил этот аспект, чтобы убедиться, что данные передаются обратно в виртуальный канал, заставляя программу отображать дату в метке с помощью обратных вызовов и делегирования (я тестировал оба пути), и это работало нормально, но я пытаюсь do - использовать это значение, взятое из всплывающего окна, поместить его в переменную и использовать для дальнейших вычислений в других функциях.
Я попытался изменить значение функции протокола, возвращаемое с первоначально (value: String) -> ()
, до (value: String) -> (String)
но потом понял, что это не сработает, когда я пытаюсь получить доступ к этой функции, скажем, из функции viewDidLoad У меня нет входного значения
как если бы я сделал это внутри viewDidLoad
date = popupValueSelected(value: ???) // throws an error because it doesn't know about the delegate
Это мой код протокола делегата:
protocol PopupDelegate {
func popupValueSelected(value:String)
}
Вот код, используемый в моем главном контроллере представления для получения данных из всплывающего окна, который все прекрасно работает
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let popup = segue.destination as! DatePopupViewController
popup.delegate = self
}
func popupValueSelected(value: String) {
date = value // how to access this value from somewhere else??
}
Все, что я хочу сделать, это использовать значение I из всплывающего окна в другой отдельной функции. Как бы я передать это значение где-то еще, если я не могу вернуть его? Я проанализировал ответы здесь и увидел, что кто-то задал похожий вопрос, но первым ответом, который я увидел, было использование делегирования, но без дальнейших объяснений. Я не хочу отображать это значение или использовать его сразу, я только хочу использовать его для другого вычисления, которое будет отображаться, когда пользователь нажимает другую кнопку.
Извините, если это не имеет смысла, так как мне трудно объяснить проблему, поэтому я и хочу воспользоваться этой учетной записью, хотя я чувствую, что что-то настолько простое, что мне не хватает.
Я ценю все отзывы, которые я могу получить!