2013-10-04 3 views
2

Я занимаюсь разработкой единого представления IOS 5.0+ приложение и я собираюсь перейти бросить мои ViewControllers так:Отклонить UIViewController после представления еще один

SearchViewController* search = 
[[SearchViewController alloc] initWithNibName:@"SearchViewController" 
             bundle:nil]; 
[self presentViewController:search 
        animated:NO 
       completion:nil]; 

Мой вопрос, если я открываю SearchViewController от HomeViewController, is HomeViewController уволено после SearchViewController показано?

У меня много UIViewController и я не знаю, будут ли все они находиться в памяти, когда пользователь перемещается между ними.

ответ

2

Если Вы хотите представить только один ViewController вы можете попробовать, как,

SearchViewController* search = 
    [[SearchViewController alloc] initWithNibName:@"SearchViewController" 
              bundle:nil]; 


    [self dismissViewControllerAnimated:NO completion:^{ 
     [self presentViewController:search 
          animated:NO 
         completion:nil]; 
    }]; 
1

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

Метод presentViewController:animated:completion: устанавливает свойство presentedViewController к указанному контроллеру вида , изменяет вид этой точки зрения контроллера, а затем добавляет вид на вид иерархии.

Итак, вы видите, что вы получаете стек ViewControllers и добавляете представление поверх другого.

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