Я использую SpriteKit для своего приложения iOS и нуждаюсь в полноэкранном (или иногда называемом «межстраничным» iAds, чтобы появляться так часто. Я могу выяснить код, когда это произойдет, но мне нужно знать, как чтобы добавить iAds, не обязательно меняя View Viewer.Интерстициальные iAds в SpriteKit?
Я попробовал [учебник] [1] от Techotopia на межстраничных iAds, но для этого мне нужно перейти между фактическими контроллерами просмотра. Ну, я пробовал это, но всякий раз переход от контроллера представления iAd к GameViewController, он испортил все это. Код в GameViewController.m говорит, что он изначально установлен в основное меню моей игры (SKScene). Поэтому, когда я пытаюсь перейти от iAd, вместо сохранения того же SKScene, он переходит в мою основную сцену.
мне нужно эти ответы:
- Есть ли какой-то способ, кроме использования двух контроллеров View, чтобы показать межстраничный МААШ?
- Если нет, то как я могу обойти эту проблему?
- Будет ли эта проблема также возникать, если я изменил бы свои «Interstitial iAds» на «Предварительные ролики видео iAds?»?
-
EDIT! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ! РЕДАКТИРОВАТЬ!
-
я в конечном итоге принять решение использовать ответ crashoverride777, и создание Objective-C мостовую заголовок, чтобы преобразовать его Swift код Objective-C. Но, ссылаясь на переменную Ads.swift
presentingViewController
, она заканчивается ноль. Вот мой код в GameViewController.m
:
// Set up interstitial iAds.
Ads *adsClass = [[Ads alloc] init];
Ads *adsInstance = [Ads sharedInstance];
adsInstance.presentingViewController = self;
Это, однако, ничего не делает. Функция showInterAd
вызывается из моего GameScene.m
, как и предполагалось, но объявления не отображаются. В моем Ads.swift
я добавил журнал, чтобы узнать, действительно ли presentingViewController
ноль.
print("iAd inter showing")
if (self.presentingViewController != nil) {
print("presentingViewController != nil")
iAdInterAdView.frame = presentingViewController.view.bounds
presentingViewController.view.addSubview(iAdInterAdView)
iAdInterAd!.presentInView(iAdInterAdView)
UIViewController.prepareInterstitialAds()
iAdInterAdView.addSubview(iAdInterAdCloseButton)
} else {
print("presentingViewController == nil")
}
Журнал выходит как это каждый раз: "presentingViewController == ноль". Я не уверен, что здесь происходит.
Перевод: 'iAdInterAdCloseButton = [UIButton buttonWithType: UIButtonTypeSystem]' и 'если ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) ' –
Почему это вызывает у вас проблемы ?. Этот первый код кнопки - это что-то новое с быстрым 2.0, так как в нем было немного иначе, чем в быстром. В объекте C это должно выглядеть так, я думаю, UIButton * iAdInterAdCloseButton = [UIButton buttonWithType: UIButtonTypeSystem]; – crashoverride777
в отношении кода устройства. Является ли ваше приложение Universal? В противном случае он не будет вызван, насколько я знаю? Вы можете прочитать это и попробовать возможные способы проверить, является ли устройство iPad. Http://stackoverflow.com/questions/10167221/ios-detect-if-user-is-on-an-ipad – crashoverride777