2016-07-22 4 views
1

Я знаю, что это часто задаваемый вопрос, но я не нашел ответа после прочтения всех подобных вопросов.Межстраничный между SplashScreen и HomePage (Segue не работает, черный экран)

Так вот мой вопрос, я интеграция объявлений в моем приложении, и в основном то, что я пытаюсь достичь, чтобы показать Interstitial во время SplashScreen, только перед получением доступа к HomePage.

Пока это то, что у меня есть:

- Запустить приложение -> Отображение SplashScreen -> Отображение HomePage и сразу после Отобразите Межстраничное.

Что я хочу:

- Запустить приложение -> Отображение SplashScreen -> Отображение Межстраничного и при объявлении закрыто, отображение HomePage.

я могу отобразить InterstitialSplashScreen во время, но мой performSegueWithIdentifier не работает, либо он показывает мне Blackscreen или блоки App на Splas enter code here hScreen.

Чтобы проиллюстрировать то, что я говорю, вот какой-то код моего SplashScreenViewController.

- (void)loadHomeView 
{ 
    if(_isDataLoaded && !_isInterstitialDisplay && [MFPreferencesUtils firstLaunch] != nil) 
    { 
     [self createSplashInterstitial]; 
     //I also tried with performSelectorOnMainThread 
    } 
} 

интерстициальной Делегат:

-(void)adsAdapterInterstitialDisappear:(Adapter *)adsAdapter{ 
    _isInterstitialDisplay = NO; 
    [self displayHome]; 
} 

И метод displayHome, вызывается, когда пользователь закрывает объявление:

-(void) displayHome 
{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self performSegueWithIdentifier:@"SplashscreenDisappearToHome" sender:self]; 
    }); 
} 

Я думаю, что это простое поведение, может быть, я не» я действительно понимаю, как работает Segues, но если я не позвоню Interstitial и вместо этого, прямо вызовите мой HomePage, он работает.

- (void)loadHomeView 
{ 
    if(_isDataLoaded && !_isInterstitialDisplay && [MFPreferencesUtils firstLaunch] != nil) 
    { 
     [self performSelectorOnMainThread:@selector(displayHome) withObject:nil 
    waitUntilDone:NO]; 
    } 
} 

Благодарим за внимание, сообщите мне, если у вас есть советы.

+1

Насколько я помню, вы не можете контролировать межстраничный жизненный цикл, поскольку он рассматривается как модальный. У меня есть код, который делает именно то, чего вы хотите достичь, но у меня нет доступа к нему прямо сейчас. Я бы предложил вам сделать следующее: создать домашний экран, который имитирует ваш заставку; Оттуда назовите свой интерстициальный; Прослушайте интерстициальный закрытый обратный вызов, чтобы выполнить переход на следующий экран. – Bienemann

ответ

0

Проблема решена, я смог исправить ее, вызвав мой метод в viewDidAppear. Это был вызов performSegue, когда мой View еще не был загружен из-за Interstitial.

Смежные вопросы