#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
вызова).