Game Center LeaderboardとAdmobバナーが含まれているアプリがあります。広告はライブであり、Xcode 8を介して実際のデバイスでアプリを実行すると正常に動作します。私は現在、そのように私のビューコントローラで私のバナー広告を設定していますキャッチされない例外によるアプリケーションの終了NSInvalidArgumentException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Application tried to present modal view controller on itself. Presenting controller is <GKHostedAuthenticateViewController: 0x7f818d749310>.'
:
mybanner.adUnitID = "XXX";
super.viewDidLoad();
mybanner.rootViewController = self;
mybanner.delegate = self;
let request = GADRequest();
mybanner.load(request);
//view.addConstraint(NSLayoutConstraint(item: mybanner, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1, constant: 0));
//view.addConstraint(NSLayoutConstraint(item: mybanner, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1, constant: 0));
NotificationCenter.default.addObserver(self, selector: #selector(self.showBannerAd), name: NSNotification.Name(rawValue: "showbannerad"), object: nil);
NotificationCenter.default.addObserver(self, selector: #selector(self.hideBannerAd), name: NSNotification.Name(rawValue: "hidebannerad"), object: nil);
私はXcodeの8アプリの負荷をからではなく、数秒後にエミュレータを起動したときしかし、私はエラーを持っています
そして、次のようにシーンのクラスからバナーを表示/非表示する通知を呼び出す:
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "showbannerad"), object: nil);
私は独自のクラスで私のゲームセンターのオブジェクトを初期化し、目からそのinitメソッドを呼び出しています次のように電子画面を起動し、ゲームセンターのコントローラのinitがある:それは実際のデバイスではなく、エミュレータで動作することを
func authPlayer(scene: SKScene) {
let localPlayer = GKLocalPlayer.localPlayer();
localPlayer.authenticateHandler = {
(view, error) in
if view != nil {
view!.present(view!, animated: true, completion: nil);
}else {
print(GKLocalPlayer.localPlayer().isAuthenticated);
}
}
}
/// In the GamvViewController
func showBannerAd() {
if mybanner.isHidden == true {
mybanner.isHidden = false;
}
}
はその奇妙な。詳細をご希望の場合はお知らせください。ありがとう。
「mybanner」とは何ですか?なぜあなたは 'rootViewController'を自分自身に設定するのですか?ここで問題と思われる。 – Codus
あなたの通知で呼び出す 'funcs'を表示してください。 –
私のバナーはAdmobバナーです。そして、GameViewControllerクラスにあります。 –