【问题标题】:Cannot convert return expression of type 'MopubBannerAdView' to return type 'UIViewController?'无法将“MopubBannerAdView”类型的返回表达式转换为“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
        }
    }
}

我怎样才能最好地解决这个问题?

【问题讨论】:

    标签: swift swiftui banner mopub


    【解决方案1】:

    您只需要设置呈现的 viewController 并且为此您可以使用窗口 rootVC 例如

      func viewControllerForPresentingModalView() -> UIViewController! {
           return  UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.rootViewController
       }
    

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多