Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 无法转换类型为';MopubBannerAdView';返回类型';UIViewController?&x27;_Swift_Swiftui_Banner_Mopub - Fatal编程技术网

Swift 无法转换类型为';MopubBannerAdView';返回类型';UIViewController?&x27;

Swift 无法转换类型为';MopubBannerAdView';返回类型';UIViewController?&x27;,swift,swiftui,banner,mopub,Swift,Swiftui,Banner,Mopub,我试图在我的swiftUI应用程序中显示mopubBanner,我正在努力解决我必须在委托中实现的委托方法之一。我不确定是否可以在这里返回viewController 未实现此方法将导致无法单击横幅广告 import MoPub struct MopubBannerAdView: UIViewControllerRepresentable { typealias UIViewControllerType = UIViewController func makeUIViewC

我试图在我的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
        }
    }
}


如何才能最好地解决这个问题?

您只需设置演示视图控制器,为此,您可以使用Windows rootVC,例如

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