Frage

Ich habe in ViewController.h eine Methode namens - (void)showFullScreenAd erstellt.

Ich habe versucht, es in meiner Szene aufzurufen.Ich habe [self.view.window.rootController showFullScreenAd] ausprobiert.Kann diese Methode nicht finden.

Ich habe ViewController *vc = [[ViewController alloc] init] ausprobiert

NSLog „Interstitial Ad request“ wurde erfolgreich ausgeführt.Aber es wird keine Werbung angezeigt.

Wenn ich die Methode direkt in ViewController.m - viewDidLoad verwende, sendet NSLog die gleiche Meldung „Interstitial Ad request“ und zeigt eine Interstitial Ad an.

War es hilfreich?

Lösung

Ich würde Benachrichtigungen verwenden:Die SKScene Das Objekt sendet eine systemweite Benachrichtigung (NSNotification) an das Benachrichtigungscenter (NSNotificationCenter), und der Ziel-View-Controller „registriert“ (d. h. lauscht) einfach dieselbe Benachrichtigung und implementiert eine Handler-Methode.Dies ist ein allgegenwärtiges Muster in Objective-C/Cococa.

Einige Vorteile sind:

  1. Es ist erweiterbar:Wenn Sie in Zukunft dieselbe Nachricht aus einer anderen Szene an den View Controller senden möchten, posten Sie einfach dieselbe Benachrichtigung aus der neuen Szene:Es ist nicht erforderlich, Header einzuschließen und eine neue Eigenschaft zu definieren.Sie müssen lediglich die Definition des Benachrichtigungsnamens angeben.

  2. Der View-Controller besitzt die Aussicht und die Aussicht die Geschenke die Szene.Von nicht referenzieren Wenn Sie den View Controller aus der Szene entfernen, vermeiden Sie das Risiko eines Referenzzyklus und damit eines Speicherverlusts.

Das mache ich übrigens in meinen Spielen.

Andere Tipps

ein Vorschlag, wie man IAD verwendet;

in viewcontroller.m:

generasacodicetagpre.

und dann in deinen myscene.h diese Zeilen einfügen:

generasacodicetagpre.

Vergessen Sie auch nicht, IAD in ViewController.M hinzuzufügen;

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top