Я использую Swift 4.2 и Xcode 10.2.
Я создал настраиваемое оповещение, которое UIViewController
называется DialAlert
. Он накладывается поверх текущего UIViewController
и имеет две кнопки, Call
и Cancel
.
Когда нажимается Call
, я сообщаю о касании базовому контроллеру представления с помощью метода делегата, называемого callTapped.
. Этот метод выполняет настройку вызова с использованием различных других методов. Пока он выполняет настройку вызова, я хотел бы обновить DialAlert
viewcontroller статусом. Но я не могу получить доступ к его свойствам из callTapped
, метода делегата, потому что он был создан в методе tableView следующим образом:
let dialAlert = self.storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.dialAlert) as! DialAlert
И именно в этом методе tableView я устанавливаю все его начальные свойства.
Я пробовал этот код в начале урока:
var dialAlert = UIViewController() as! DialAlert
а затем ссылался на self.dialAlert во всем коде (который компилировался), но во время выполнения я получаю сообщение об ошибке, что я не могу привести значение типа UIViewController
в DialAlert
.
Как я могу изменить свойства dialAlert
в методе, отличном от того, в котором был создан экземпляр? Я нашел несколько ответов в SO, которые выглядели многообещающими, но ничего нового и ничего важного.