Как обновить данные во ViewController’е после dismiss() во всплывающем?

Чтобы обновить данные в ViewController, после его закрытия всплывающего окна, можно использовать различные подходы и паттерны программирования. Вот несколько вариантов:

  1. Передача данных обратно через делегирующий паттерн:
  • Создайте протокол делегата всплывающего окна со связанными методами для передачи данных.
  • Создайте свойство делегата во всплывающем окне.
  • При закрытии всплывающего окна вызовите соответствующий метод делегата и передайте необходимые данные.
  • В ViewController, который вызвал всплывающее окно, реализуйте протокол делегата и обновите данные в соответствии с переданными значениями.
  1. Использование замыканий (closures):
  • Во всплывающем окне создайте свойство замыкания, которое принимает необходимые данные в качестве параметров.
  • При закрытии всплывающего окна вызовите заданное замыкание и передайте ему необходимые данные.
  • В ViewController определите замыкание и обновите данные в соответствии с переданными значениями.
  1. Использование наблюдателей (observers):
  • Создайте наблюдаемое свойство во всплывающем окне.
  • В ViewController подпишитесь на изменения этого наблюдаемого свойства.
  • При закрытии всплывающего окна измените значение наблюдаемого свойства, чтобы вызвать соответствующий наблюдатель в ViewController, и передайте необходимые данные.
  • Внутри наблюдателя обновите данные в соответствии с переданными значениями.
  1. Использование unwind сегвеев:
  • Создайте метод @IBAction в ViewController, который будет принимать данные в качестве параметров.
  • В всплывающем окне создайте сегвей типа unwind, который будет вызывать созданное ранее действие.
  • Перед закрытием всплывающего окна установите необходимые значения для параметров сегвея.
  • При закрытии всплывающего окна вызовите сегвей, чтобы данные были переданы обратно в ViewController.
  • В методе @IBAction обновите данные в соответствии с переданными значениями.

Способ выбора зависит от сложности вашего приложения и предпочтений разработчика. Выберите наиболее подходящий вариант для вашей ситуации и реализуйте его в соответствии с требованиями вашего проекта.