2015-05-14 2 views
1

Я создаю приложение, которое использует использование геообработки с помощью CLLocationManager. Я реализовал эти два метода, и они оба вызывались соответствующим образом:Обновление пользовательского интерфейса в didEnterRegion?

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region 
{ 
    [self updateUI]; // update the UI 
} 

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region 
{ 
    [self updateUI]; // update the UI 
} 

Я делаю набор обновлений пользовательского интерфейса в методе под названием updateUI как так:

- (void)updateUI 
{ 
    // Update labels, constraints, alphas and similar 
} 

updateUI называется в didEnterRegion и didExitRegion, но это вызывает несколько вопросов:

  • Как это работает, когда приложение находится в фоновом режиме?
  • Должен ли я определить, открыто ли приложение или в фоновом режиме, а затем обновить пользовательский интерфейс в viewWillAppear?
  • Если обновление пользовательского интерфейса - это плохо, что нужно делать в этих didEnterRegion и didExitRegion, каковы именно последствия этого?

Спасибо!

Эрик

ответ

0

Если ваше приложение не было на переднем плане, когда уведомление прибыл, он не будет выдвинутыми. Таким образом, в данный момент очень мало смысла что-либо делать с интерфейсом, потому что, по сути, нет интерфейса. Просто обработайте уведомление каким-либо образом - например, отметьте, что произошло, и остановитесь. Ваша работа на этом этапе - выйти оттуда как можно быстрее и позволить приложению снова заснуть. В следующий раз, когда ваше приложение поступит на передний план (станет активным), вы получите уведомление , что и сейчас вы можете сделать интерфейс совместимым с данными.

+0

Да, я просто создам строку или что-то в NSUserDefaults, а затем прочитаю из этого в viewWillAppear и определите, нужно ли мне когда-либо делать какое-либо обновление пользовательского интерфейса. Как проверить, находится ли приложение на переднем плане или в фоновом режиме? – Erik

+0

Действительно? Вы не можете понять, как задать заявку, если это фон или передний план? В самом деле? – matt

+0

да, извините. Я понял это. Спасибо, хотя! – Erik