У меня есть контроллер вида, который запрашивает веб-службу относительно того, должно ли отображаться объявление внутристраничного объявления. Если это так, создается другой экземпляр контроллера представления и представлен с помощью currentViewController: анимированный: завершение :. Согласно this answer и docs, я бы предположил, что viewDidAppear: не будет вызываться при отклонении представленного контроллера представления (который он сам делает). Понятно, что во всяком случае представление представления контроллера представления никогда не удаляется из иерархии представлений и поэтому никогда не нужно «снова появляться». Я, очевидно, ошибаюсь. Так, что происходит? Почему то, что я вижу, отличается от того, что говорят документы?viewDidAppear: вызывается при использовании presentViewController: анимированный: завершение:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[AdService sharedAdService] adForSlotName:@"Main Interstitial" completionBlock:^(Ad *adForSlotName) {
if(adForSlotName)
{
InterstitialAdViewController_iPhone *interstitialAdViewController = [[InterstitialAdViewController_iPhone alloc] init];
interstitialAdViewController.ad = adForSlotName;
dispatch_queue_t mainQueue = dispatch_get_main_queue();
dispatch_async(mainQueue, ^{
[self presentViewController:interstitialAdViewController animated:YES completion:^{}];
});
[interstitialAdViewController release];
}
}];
}
- (void)viewWillDisappear:(BOOL)animated
{
[[AdService sharedAdService] clearAdForSlotName:@"Main Interstitial"];
[super viewWillDisappear:animated];
}
С какого вида получает видDidAppear в какой точке? Мне кажется непонятным в вашем вопросе. Я бы предположил, что viewDidAppear вызывается всякий раз, когда появляется представление. Появлением может быть что-то, что случается после представления представления, но также будет происходить по основному виду после того, как вид, ранее покрывающий его, будет удален (отклонен). – Till
Извинения, viewDidAppear: на контроллере представления представления вызывается всякий раз, когда представленный диспетчер представлений отклоняется. – rob5408
, что соответствовало бы моим ожиданиям, составленным во второй части моего первого комментария, и точно так, как должно быть. – Till