#swift #swiftui #banner #mopub
#swift #swiftui #баннер #mopub
Вопрос:
Я пытаюсь показать mopubBanner в моем приложении SwiftUI и борюсь с одним из методов делегирования, которые я должен реализовать в делегате. Я не уверен, возможно ли вернуть ViewController здесь.
Невыполнение этого метода приводит к тому, что баннер становится недоступным для просмотра.
import MoPub
struct MopubBannerAdView: UIViewControllerRepresentable {
typealias UIViewControllerType = UIViewController
func makeUIViewController(context: Context) -> UIViewController {
return MopubBannerViewController()
}
func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject, UINavigationControllerDelegate, MPAdViewDelegate {
private let parent: MopubBannerAdView
init(_ mopubView: MopubBannerAdView) {
self.parent = mopubView
}
func viewControllerForPresentingModalView() -> UIViewController! {
return self.parent /// this line here throws the error
}
}
}
Как я могу наилучшим образом решить эту проблему?
Ответ №1:
Вам просто нужно установить представляющий ViewController, и для этого вы можете использовать window rootVC, например
func viewControllerForPresentingModalView() -> UIViewController! {
return UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.rootViewController
}