swift - 无法将“MopubBannerAdView”类型的返回表达式转换为“UIViewController”类型的返回表达式?
问题描述
我试图在我的 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
}
推荐阅读
- tensorflow - 执行 bagging 时如何重置 keras 模型的权重和梯度
- c - C中的分段错误和矩阵问题
- python - 有人可以解释为什么会这样吗?
- javascript - 笑话:可以将函数设置为模拟,但不是等效的对象方法
- python-3.x - 无法导入 SMOTENC
- css - 使用 overlow-x 滚动在 Firefox 上不起作用
- android - RxJava2:即使第一个 Completable 发出错误,也会调用 .andThen()
- vb.net - 分组后图表区域不显示注释
- c++ - 编译包含boost库和google测试的项目时出现问题
- python - 数据框中应该有一个单词或值,但所有内容都显示为 NaN