无法将“MopubBannerAdView”类型的返回表达式转换为“UIViewController”类型的返回表达式?
Posted
技术标签:
【中文标题】无法将“MopubBannerAdView”类型的返回表达式转换为“UIViewController”类型的返回表达式?【英文标题】:Cannot convert return expression of type 'MopubBannerAdView' to return type 'UIViewController?' 【发布时间】:2021-01-18 06:37:54 【问题描述】:我试图在我的 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
我怎样才能最好地解决这个问题?
【问题讨论】:
【参考方案1】:您只需要设置呈现的 viewController 并且为此您可以使用窗口 rootVC 例如
func viewControllerForPresentingModalView() -> UIViewController!
return UIApplication.shared.windows.filter $0.isKeyWindow.first?.rootViewController
【讨论】:
以上是关于无法将“MopubBannerAdView”类型的返回表达式转换为“UIViewController”类型的返回表达式?的主要内容,如果未能解决你的问题,请参考以下文章
无法将类型为“System.Collections.Generic.List`1[EPMS.Domain.SingleItem]”的对象强制转换为类型“EPMS
C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable