问题描述
我正在尝试在我的swiftUI应用中显示mopubBanner,而我正努力使用必须在委托中实现的委托方法之一。我不确定是否可以在这里返回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
}
}
}
我该如何最好地解决这个问题?
解决方法
您只需要设置当前的viewController即可,例如,可以使用rootVC窗口
func viewControllerForPresentingModalView() -> UIViewController! {
return UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.rootViewController
}