Альтернатива ViewController в проекте SwiftUI
Что является аналогом класса в проекте с интерфейсом типа SwiftUI?
Я следую для инициализации из Google AdMob в проекте SwiftUI. Все примеры в документе находятся в
ViewController : UIViewController
учебный класс. Однако я видел, что это доступно только тогда, когда я создаю проект с раскадровкой в качестве интерфейса. Но не SwiftUI. Примеры в этой документацииэтой документации инициализируют следующим образом, присваивая параметры с помощью ключевого слова
rootViewController
а также
adLoader.delegate
. Мой проект был создан с интерфейсом SwiftUI и не имеет
ViewController
учебный класс. У меня есть основной класс приложения, который реализует
App
протокол с
@main
аннотация. Затем у меня есть представление, которое загружается из основного класса приложения. Пожалуйста, помогите мне понять, что я могу использовать вместо ключевого слова
self
для инициализации
adLoader
объект.
Код из документа Google, с которым я пытаюсь работать:
var adLoader: GADAdLoader!
var nativeAdView: GADNativeAdView!
adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
adTypes: [.native],
options: [multipleAdsOptions])
adLoader.delegate = self
Документация для GADAdLoader
Пример кода в проекте
MyApp.swift
@main
struct MyApp: App {
init() {}
var body: some Scene {
WindowGroup{
HomeView()
}
}
HomeView.swift
struct HomeView: View {
var body: some View {
customMainNavBar
.onAppear(){
------
------
}
}
}
Ошибки, которые я получаю, когда помещаю этот код в представление или основное приложение.
-
Cannot convert value of type 'HomeView' to expected argument type 'UIViewController?'
-
Cannot assign value of type 'HomeView' to type 'GADAdLoaderDelegate?'
-
Cannot convert value of type 'MyApp' to expected argument type 'UIViewController?'
-
Cannot assign value of type 'MyApp' to type 'GADAdLoaderDelegate?'