Есть 2 контроллера. это то, как выглядит пользовательский интерфейс это то, как я создаю всплывающее окно, т.е. с помощью segue
HomeViewController: имеет метку и кнопку.После нажатия на эту кнопку с именем -> «Добавить действие» -> открывается всплывающее окно.
PopupViewController: это всплывающее окно, в котором пользователь может ввести ввод и нажать «Сохранить».во всплывающем окне есть текстовое поле.Пользователь заполняет поле и нажимает кнопку Сохранить.при сохранении -> для этого PopupViewController вызывается IBAction, в котором есть функция dismiss () для закрытия всплывающего окна.и блок завершения внутри функции dismiss - это то место, где я пытаюсь создать экземпляр HomeViewController для обновления меток.(Примечание: PopupViewController создается с помощью segue, путем выбора в текущем контексте)
, но при этом я вижу, что все IBOutlets внутри HomeViewController равны нулю при попытке сохранить из всплывающего окна, поэтому я невозможность обновления ярлыков.
То, что я пробовал: я проверил другие вопросы и ответы в Интернете и проверил ниже: 1. Я проверил соединение метки с раскадровкой.это правильно.2. Я использовал синтаксис instantiateViewController, чтобы правильно создать экземпляр HomeViewController.но проблема остается.
HomeViewController
var actionNames = [String]()
var actionDescriptions = [String]()
@IBOutlet weak var firstActionLabel: UILabel!
func updateViewWithNewAction() {
print("updating views started")
if firstActionLabel != nil {
if actionNames.count > 0 {
firstActionLabel.text = actionNames[0]
} else {
print("no actions in the array")
}
} else {
print("firstActionLabel is nil")
}
print("updating views completed")
}
func addActions(actionName: String, actionDescription: String) {
actionNames.append(actionName)
actionDescriptions.append(actionDescription)
print("actions added")
}
PopupViewController
@IBOutlet weak var actionTitle: UITextField!
@IBOutlet weak var actionDescriptionTextView: UITextView!
@IBAction func createAction(_ sender: Any) {
//getting action values from user
actionName = actionTitle.text!
actionDescription = actionDescriptionTextView.text!
dismiss(animated: true, completion: {
print("completion block started ---")
let homeVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController
homeVC.addActions(actionName: self.actionName, actionDescription: self.actionDescription)
homeVC.updateViewWithNewAction()
print("completion block ended ---")
})
}
Ожидаемый результат: при createAction () PopupViewController метка внутри HomeViewController должна быть обновлена с помощьюновое значение.Фактический результат: firstActionLabel - ноль, во время homeVC.updateViewWithNewAction ()