#ios #swift #modal-dialog #presentmodalviewcontroller
Вопрос:
Я создал пользовательское представление, которое будет отображаться в виде всплывающего окна / пользовательского представления предупреждений в центре экрана. Мой код отображает вид в верхней части экрана, а также фон становится черным.
Я хотел бы отобразить представление в центре экрана и показать контроллер, который представил представление в фоновом режиме.
Я попытался изменить стиль презентации на всплывающее окно и таблицу страниц, но это заняло весь экран. Как отобразить представление в центре с приложением в фоновом режиме?
Ниже приведен код:
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let customAlert = storyBoard.instantiateViewController(withIdentifier: "CustomAlertViewController") as! CustomAlertViewController
customAlert.providesPresentationContextTransitionStyle = true
customAlert.definesPresentationContext = true
customAlert.modalPresentationStyle = UIModalPresentationStyle.currentContext
customAlert.modalTransitionStyle = UIModalTransitionStyle.crossDissolve
if let topVC = UIApplication.shared.topMostViewController() {
topVC.present(customAlert, animated: true, completion: nil)
}
Изменить: Удалось центрировать представление, изменив ограничения.
Комментарии:
1. Попробуй
overCurrentContext
2. @Paulw11 — Спасибо! Я попробовал, и это показывает приложение в фоновом режиме, но модал все еще не центрирован.
3. Используйте контроллер дочернего представления, а не модель, которая даст вам контроль над позиционированием?