willAnimateRotationToInterfaceOrientation вызывается ДО представления viewWillAppear - PullRequest
0 голосов
/ 20 декабря 2010

Я только что отследил сбой, который был у меня в приложении для iOS, и он связан с вызовом willAnimateRotationToInterfaceOrientation перед viewWillAppear.

У меня есть приложение с двумя представлениями.В основном, когда view1 исчезает, я освобождаю некоторые массивы, предполагая, что они будут повторно инициализированы, когда он снова появится в viewWillAppear.

Однако, если я изменю ориентацию в view2, а затем переключаюсь обратно на view1, это вызываетпроизойдет до того, как view1 вызовет viewWillAppear и повторно инициализирует все, и это приведет к сбою.

Есть ли способ отложить willAnimateRotationToInterfaceOrientation до тех пор, пока представление не появится и все не будет повторно инициализировано?

Если нет, то единственные решения, которые я вижу, это либо не использовать willAnimateRotationToInterfaceOrientation (что приводит к уродливому изменению ориентации), либо не освобождать мои данные, когда я переключаюсь с view1 на view2, что приводит к использованию большего количества памяти, чемнеобходимо.

У кого-нибудь есть мысли о том, что мне делать?

1 Ответ

1 голос
/ 20 декабря 2010

Вы можете использовать код стиля с отложенной загрузкой, чтобы избежать вашей проблемы, например:

NSArray* someData;


-(void)somefun1{

   if (!someData) {

      [self loadData];
   }

    //use your data
}

-(void)somefun2{

    if (!someData) {

    [self loadData];
    }

    //use your data

}

-(void)loadData{
    //some loading code
}

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

...