2013-12-17 3 views
0

Я работаю над кодом, в котором мне нужно представить контроллер представления в модальном стиле. Проблема, с которой я сталкиваюсь, заключается в том, что при представлении представления вызывается вызов viewDidDisappear предыдущего вида, который приводит к освобождению некоторых свойств, которые мне понадобятся. Что я могу сделать, чтобы viewDidDisappear не вызывался?Возникает ли viewDidDisappear при представлении представления модально

ответ

2

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

  1. В методе viewWillAppear установлен флаг истинного
  2. Когда вы представляете вид модального установить флаг в ложном
  3. В viewDidDisappear проверки установлен ли флаг верно, если да, освободить ресурсы

как:

Declare флаг как:

BOOL flag; 

Реализовать метод, как:

- (void)viewWillAppear:(BOOL)animated 
{ 
    flag = true; 
} 


- (void)viewWillDisappear:(BOOL)animated 
{ 
    if (flag) 
    { 
     //release resources 
    } 
} 


- (IBAction)showModal:(id)sender 
{ 
    //Assuming you are using such a method to display the modal view 
    flag = false; 
} 
0

Вы можите сделать это. Потому что когда вы нажали или представили контроллеры представлений, которые приводят к вызову viewDidDisappear. Вы можете сделать одно. Во время просмотра исчезнет вызов, заблокируйте свою функцию на set flag после представления и reset flag перед увольнением.

Смежные вопросы