문제

ViewController.h에 - (void)showFullScreenAd라는 메서드를 만들었습니다.

나는 그것을 내 장면 안에서 부르려고 노력했다.[self.view.window.rootController showFullScreenAd]를 시도했습니다.이 방법을 찾을 수 없습니다.

ViewController *vc = [[ViewController alloc] init]를 시도했습니다.

NSLog "삽입 광고 요청"이 성공적으로 수행되었습니다.하지만 광고가 표시되지 않습니다.

ViewController.m - viewDidLoad에서 직접 메소드를 사용하면 동일한 메시지 "삽입 광고 요청"을 NSLog에 기록하고 전면 광고를 표시합니다.

도움이 되었습니까?

해결책

나는 알림을 사용할 것이다:그만큼 SKScene 개체가 시스템 전체에 알림을 게시합니다(NSNotification) 알림 센터(NSNotificationCenter), 타겟 뷰 컨트롤러는 동일한 알림을 '등록'(즉, 수신)하고 핸들러 메서드를 구현합니다.이는 Objective-C/Cococa에 널리 퍼져 있는 패턴입니다.

일부 이점은 다음과 같습니다.

  1. 확장 가능합니다.나중에 다른 장면의 뷰 컨트롤러에 동일한 메시지를 보내려면 새 장면에서 동일한 알림을 게시하면 됩니다.헤더를 포함하거나 새 속성을 정의할 필요가 없습니다.알림 이름의 정의만 포함하면 됩니다.

  2. 뷰 컨트롤러 소유하다 전망, 그리고 전망 선물 장면.에 의해 참조하지 않음 장면에서 뷰 컨트롤러를 사용하면 참조 순환으로 인한 메모리 누수의 위험을 피할 수 있습니다.

그건 그렇고, 이것이 제가 게임에서 하는 일입니다.

다른 팁

iad를 사용하는 방법에 대한 제안;

ViewController.m :

MyScene * scene = [MyScene sceneWithSize:skView.bounds.size];
scene.viewController = self;
.

그리고 나서 myscene.h 그 줄을 넣으십시오 :

#import "ViewController.h"

@property (nonatomic) ViewController *viewController;
.

또한 ViewController.m;

에 iad를 추가하는 것을 잊지 마십시오.
[self.view addSubview:adView];
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top