我刚刚将Xcode更新为11,并尝试在iOS 13设备上运行我的应用。我发现视图控制器没有全屏显示,但是我能够解决以下问题:Presenting modal in iOS 13 fullscreen
但是我也有一个问题,就是Admob插页式广告无法全屏显示。我将附上一个屏幕截图进行演示,您将看到顶部不在顶部。
这是我展示插页式广告的方式:
if (self.interstitial.isReady) {
[self.interstitial presentFromRootViewController:self];
}
答案 0 :(得分:0)
将演示模式更改为:
抱歉,我在Swift中写过,尽管在Objective-C中应该类似。
viewController.modalPresentationStyle = .fullScreen
或
viewController.modalPresentationStyle = .overFullScreen
在iOS 13上,我注意到默认的modalPresentationStyle
是.overCurrentContext
或.currentContext
,它制作了怪异的动画并最小化了所显示的视图控制器的框架。
答案 1 :(得分:0)
我认为有一个简单的解决方案,您需要更新Google Mobile Ads SDK(吊舱更新或迦太基更新)。 Ads SDK:7.50.0,iOS 13支持的正式版本。
答案 2 :(得分:0)
这是非页内广告的基本帮助程序类,它不依赖于我的任何观点或模式实施。它将仅在rootViewController上展示广告,并且即使在横向模式下也可以为我工作,这也可以用于SwiftUI。否则请尝试一下。
import Foundation
import GoogleMobileAds
import UIKit
final class InterstitialAd : NSObject, GADInterstitialDelegate {
var interstitial: GADInterstitial? = nil
func LoadInterstitial() {
interstitial = GADInterstitial(adUnitID: Constants.interstitialAdCode)
let req = GADRequest()
interstitial!.load(req)
interstitial!.delegate = self
}
func showAd() {
if let ad = self.interstitial, ad.isReady {
let root = UIApplication.shared.windows.first?.rootViewController
ad.present(fromRootViewController: root!)
}
}
}