Как узнать, когда UIView станет полностью скрытым? - PullRequest
4 голосов
/ 18 февраля 2010

Я переключаюсь между двумя видами, переключая скрытые атрибуты. Как узнать, когда один вид скрыт и / или виден?

Пробовал устанавливать точки останова в viewDidLoad, viewDidUnload, viewWillAppear, viewWillDisappear, viewDidDisappear, становитьсяFirstResponder и resignFirstResponder. Ничего такого. Ни один из них не вызывается, когда я устанавливаю скрытый = ДА / НЕТ.

if (self.aController)
    self.aController.view.hidden = YES;
if (self.bController)
    self.bController.view.hidden = NO;
[self.bController viewWillAppear:YES];

Я вызываю viewWillAppear самостоятельно, так как это представление ... подпредставление подпредставления представления под UITabBarItem. В Apple Docs сказали, что установка неестественная и некоторые автоматические уведомления должны выполняться вручную . Является ли это той же самой проблемой с тем, что не стали становиться становящимися становящимися фарами и resignFirstResponder, которые должны быть связаны со скрытым статусом?

Ответы [ 2 ]

3 голосов
/ 18 февраля 2010

Думаю, документы Apple были правильными или, по крайней мере, предлагали один способ решения проблемы .Так как я не получаю автоматические уведомления во вложенных представлениях, но я получаю их в mainView, я просто "пересылаю" уведомления самостоятельно:

- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

// called at tab switch
if (self.aController)
    [self.aController viewWillAppear:YES];
if (self.bController)
    [self.bController viewWillAppear:YES];
}

- (void) viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];

// called at tab switch
if (self.aController)
    [self.aController viewWillDisappear:YES];
if (self.bController)
    [self.bController viewWillDisappear:YES];
}

Не уверен, что это "правильный" способ,но это работает.Следующая проблема, пожалуйста!

3 голосов
/ 18 февраля 2010

Один из вариантов - использовать Наблюдение значения ключа для наблюдения свойства hidden любого из представлений. Когда изменение сработает, вы получите сообщение об изменении.

...