#ios #swift
Вопрос:
У меня есть приложение для iOS, в котором я представляю контроллер просмотра для отображения рекламы в полноэкранном режиме. Это мой GameViewController
.
Когда я представляю GameViewController
, существующий контент автоматически отодвигается немного назад, подальше от пользователя (я полагаю, в меньшем масштабе). Я бы хотел, чтобы существующий контент оставался на месте без масштабирования.
Чтобы представить GameViewController
, я сначала беру корневой контроллер представления, вот так:
let rootViewController = UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.rootViewController
Затем я вызываю present
контроллер корневого представления, передавая его в GameViewController
качестве первого аргумента, вот так:
rootViewController?.present(self, animated: false) {
//Load the advertisement.
}
Я попробовал поэкспериментировать с этим modalPresentationStyle
свойством, вот так:
rootViewController?.modalPresentationStyle = .overFullScreen
Вопрос: Как я могу предотвратить уменьшение/удаление существующего контента от пользователя при представлении контроллера представления?
Спасибо!
Комментарии:
1. Вместо того, чтобы представлять его, загрузите его как дочерний контроллер представления и добавьте его представление в качестве подвида в существующую иерархию представлений. Вы можете анимировать его или отображать любым удобным для вас способом.
Ответ №1:
попробуй это:
let controller = GameViewController()
controller.modalPresentationStyle = .fullScreen
present(controller, animated: true, completion: nil)
ОТРЕДАКТИРУЙТЕ после вашего комментария
попробуй это:
let controller = GameViewController()
controller.modalPresentationStyle = .overCurrentContext
controller.view.backgroundColor = UIColor(white: 0, alpha: 0.5) // or you can set it in your destination controller
present(controller, animated: true, completion: nil)
Комментарии:
1. Это здорово. Клавиша устанавливается
modalPresentationStyle
наGameViewController
, а не на контроллере корневого представления. Одна вещь: контроллер корневого представления (существующий контент) полностью отключается black…is есть ли способ вместо этого просто частично прозрачно наложить существующий контент на существующий?