В UIKit всплывающее окно в основном может быть:

  • всплывающее предупреждение с помощью UIAlertController
  • всплывающий лист действий с использованием UIAlertController. Для получения дополнительной информации проверьте это: Представить лист действий в UIKit и SwiftUI
  • всплывающее окно пользовательского представления / viewController

Далее будет показано, как представить пользовательское представление/контроллер представления, создав пользовательское всплывающее окно, создав подкласс UIViewController и представив его модально.

Вот пример того, как создать пользовательское всплывающее окно в UIKit:

// custom popup viewcontroller
class PopupViewController: UIViewController {
  var dismissHandler: (() -> Void)?

  override func viewDidLoad() {
    super.viewDidLoad()

    // Customize the appearance of the view here
    view.backgroundColor = .white
  }

  @IBAction func dismissButtonTapped(_ sender: Any) {
    dismissHandler?()
    dismiss(animated: true, completion: nil)
  }
}

// How to use
class ViewController: UIViewController {
  @IBAction func showPopupButtonTapped(_ sender: Any) {
    let popup = PopupViewController()
    popup.dismissHandler = {
      // Update the UI or perform any other actions when the popup is dismissed
    }
    present(popup, animated: true, completion: nil)
  }
}

В этом примере PopupViewController является подклассом UIViewController, представляющим содержимое всплывающего окна. У него есть свойство dismissHandler, которое используется для обновления пользовательского интерфейса или выполнения любых других действий при закрытии всплывающего окна.

Класс ViewController имеет метод действия showPopupButtonTapped, который вызывается при нажатии кнопки. Он создает экземпляр PopupViewController и представляет его модально.

Чтобы закрыть всплывающее окно, метод dismiss(_:animated:completion:) вызывается для файла PopupViewController. Закрытие dismissHandler выполняется до того, как всплывающее окно будет закрыто, и всплывающее окно будет удалено из иерархии представлений.

Вы можете настроить внешний вид и поведение всплывающего окна, добавив дополнительные представления или элементы управления в PopupViewController или используя собственный стиль модального представления.

Первоначально опубликовано на https://needone.app 9 января 2023 г.

👉 Если вы хотите получать больше таких историй, пожалуйста, следите за моим каналом, чтобы получать последние обновления вовремя