Представить контроллер представления без масштабирования существующего содержимого?

#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 есть ли способ вместо этого просто частично прозрачно наложить существующий контент на существующий?