Как отобразить полноэкранную рекламу от Яндекс в дочернем представлении
Подключил рекламу от яндекс в свое приложение на SwiftUI. Реклама показывается только в ContentView. При переходе на другое представление в логах видно что реклама загружается, но почему-то не показывается. Вот код мой. Файл YandexAd.swift:
import Foundation
import YandexMobileAds
import UIKit
// Яндекс реклама
class InterstitialYandex: NSObject, YMAInterstitialAdDelegate {
var interstitialYandexAd: YMAInterstitialAd?
override init() {
super.init()
loadInterstitial()
}
func loadInterstitial(){
self.interstitialYandexAd = YMAInterstitialAd(adUnitID: "R-M-2248734-1")
self.interstitialYandexAd?.load()
self.interstitialYandexAd?.delegate = self
}
func interstitialAdDidLoad(_ interstitialYandexAd: YMAInterstitialAd) {
let scenes = UIApplication.shared.connectedScenes
let windowScene = scenes.first as? UIWindowScene
let window = windowScene?.windows.first
let root = window?.rootViewController
//let root = UIApplication.shared.windows.first?.rootViewController
self.interstitialYandexAd?.present(from: root!)
print("Loaded Adv.")
}
func interstitialAdDidFail(toLoad interstitialYandexAd: YMAInterstitialAd, error: Error) {
print("Loading failed. Error: \(error)")
}
func interstitialAdDidFail(toPresent interstitialAd: YMAInterstitialAd, error: Error) {
print("Presenting failed. Error: \(error)")
}
}
А вот так вызываю в ContentView и в других представлениях:
ContentView.swift:
import SwiftUI
import AppTrackingTransparency
import AdSupport
import YandexMobileAds
import UIKit
struct ContentView: View {
//Яндекс
var interstitialYandex:InterstitialYandex
init() {
self.interstitialYandex = InterstitialYandex()
}
}
IstoriaHome.swift:
import SwiftUI
import YandexMobileAds
import UIKit
struct IstoriyaGameHome: View {
//Яндекс реклама
var interstitialYandex:InterstitialYandex
init() {
self.interstitialYandex = InterstitialYandex()
}
}