Обнаружение модификации UIView - PullRequest
0 голосов
/ 15 марта 2011

Мне нужно определить из делегата приложения, что основной UIView (вид, который фактически просматривает пользователь) изменился.

  1. Его там iOS уведомление для этого?
  2. Если нет, я могу выполнить функцию из таймера ... но как проверить, что основной вид (вид, который фактически просматривает пользователь) изменился?

-Fred

Ответы [ 3 ]

0 голосов
/ 20 марта 2011

Если вы хотите, чтобы он был общим, вы можете попробовать использовать уведомления.

В любом UIView, который вы хотите сообщить о своем изменении «исчезновении», вы можете добавить свое уведомление в методе dealloc

-(void)dealloc{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ViewChanged" object:nil];
}

и в коде, который отвечает на изменение, которое вы можете прослушатьуведомление "ViewChanged".Вы можете сделать это с помощью этого кода:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewChanged) name:@"ViewChanged" object:nil];

-(void)viewChanged{
 // do what ever you want after the view has changed
}
0 голосов
/ 30 июня 2012

Вам следует воспользоваться своим селектором для класса UIViewController. Как вы можете переключиться на viewWillAppear для созданного вами customViewWillAppear. Итак, когда приложение сгенерирует вызов для viewWillAppear, будет вызван ваш метод swizzled (customViewWillAppear). Таким образом, вы можете определить, что пользователь изменил экран.

Не забудьте вызвать фактический метод для выполнения материала, записанного в методе viewWillAppear.

0 голосов
/ 15 марта 2011

Единственный способ изменить представление - это изменить его на каком-то уровне.

...