在SWIFTUI中编码
我已经在我的SwiftUI应用程序中实现了一个设置页面,该页面在单击视图中的按钮时显示。该视图被包装在一张纸中。您可以看到以下代码:
TabsBar(showOptionsTab: $showOptionsTab)
.sheet(isPresented: $showOptionsTab)
{
OptionsTab(showOptionsTab: self.$showOptionsTab)
}
我已经在此“ OptionsTab”中实现了一个非页内广告,当在.onAppear()调用中加载选项标签时创建了插页式广告,并在选择后退按钮时显示了插页式广告。您可以从下面的OptionsTab中选择代码:
@State private var interstitial : GADInterstitial!
VStack
{
... other code
Button(action:
{
if ( self.interstitial.isReady)
{
let root = UIApplication.shared.windows.first?.rootViewController
self.interstitial.present(fromRootViewController: root!)
}
self.showOptionsTab.toggle()
})
{
Image(systemName: "xmark")
.font(.largeTitle)
}
}
.onAppear
{
self.interstitial = GADInterstitial(adUnitID: "addID")
let req = GADRequest()
self.interstitial.load(req)
}
我在按钮内有其他代码,记录了插页式广告的状态,并显示其为READY(就绪)状态,当前代码正在被执行中……但从未显示过。
我已经在ContentView中实现了此确切的代码,并且插页式广告加载也很好。工作表中存在与此代码有关的内容,导致插页式广告无法显示。
rootViewController是在工作表中显示的视图中加载插页式广告的不正确视图吗?否则,我还做错了什么?
谢谢您的帮助!
尝试一下
TabsBar(showOptionsTab: $showOptionsTab)
.sheet(isPresented: $showOptionsTab)
{
OptionsTab(showOptionsTab: self.$showOptionsTab)
.OnDisapear
{
if ( self.interstitial.isReady)
{
let root = UIApplication.shared.windows.first?.rootViewController
self.interstitial.present(fromRootViewController: root!)
}
}
}
}
然后在此视图中添加状态插页式变量,然后在ContextView的onAppear上创建插页式。