В 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 г.