снова загрузить iAd на родительский UIViewController после возврата к дочернему виду формы?

#ios

#iOS

Вопрос:

У меня есть 2 вида (родительский и дочерний). У меня iAd отображается на родительском, и я не хочу, чтобы ad отображалось на дочернем. Итак, перед вызовом дочернего элемента я удаляю iAd. Теперь, когда я возвращаюсь к родительскому представлению из дочернего представления, я хочу, чтобы iAd снова появился. Я пытался сделать это, вызвав методы viewDidLoad / viewWillLoad, но они, похоже, не вызываются. Я видел похожие вопросы, но они, похоже, не работают.

Я вызываю removeFromSuperview перед вызовом фактического дочернего вида

 -(IBAction) switchView:(id)sender{
about *svc = [[about alloc] initWithNibName:@"about" bundle:nil];
[adView removeFromSuperview];
[self.view addSubview:svc.view];
}
  

и я пытаюсь оживить iAd, используя
[self.view addSubview:AdView];

Может кто-нибудь, пожалуйста, сказать мне, какой метод вызывается при повторной загрузке родительского представления, чтобы я мог загрузить туда форму iAd?

Ответ №1:

Как насчет того, чтобы просто выполнять [adView setHidden: YES] при переключении на дочерний вид и [adView setHidden: NO] при возврате к родительскому?

Еще одно предложение: соглашение Objective C заключается в том, чтобы использовать классы с заглавной буквы. Итак, вместо класса с именем «about» он должен быть назван «About».

Комментарии:

1. Спасибо за ответ! но в этом и был вопрос, viewDidLoad / viewWillLoad, похоже, не вызывается при удалении дочернего вида. Итак, куда мне поместить [AdView setHidden: NO]? Еще раз спасибо! 🙂

2. Кроме того, спасибо за предложение о ‘About’. Я буду иметь это в виду!

3. viewDidLoad amp; viewWillLoad вызываются только тогда, когда контроллер представления (не представление) загружается в первый (и, надеюсь) единственный раз, когда это необходимо вашему приложению. Похоже, что ваш контроллер представления управляет несколькими различными представлениями (родительским, дочерним и iAd-представлением). Включите [adView setHidden: YES] в свое switchView: действие.

4. Да, я уже поместил [AdView setHidden: YES] в свой switchview, и он отлично работает. Проблема, с которой я сталкиваюсь, заключается в том, что элемент управления возвращается в родительский вид. Я не могу сделать его видимым! Куда мне поместить [AdView setHidden: NO], каким методом?

5. поместите [adView setHidden: NO] строку прямо под тем местом, где вы переходите из дочернего представления обратно в родительское представление (предположительно, с помощью removeFromSuperview вызова).