Слишком много навигационных контроллеров? - PullRequest
0 голосов
/ 29 сентября 2011

Я думаю, что делаю что-то нелепо не так с моим проектом. Я делаю проект, который в основном представляет собой набор контроллеров представления с видео на некоторых из них, изображения на других. Я создал макет, но я думаю, что слишком много толкаю Navigation Controller, делая то, для чего он не должен использоваться.

Вот что я сделал: я создал четыре контроллера вида и контроллер навигации. Третий контроллер представления имеет MPMoviePlayer в качестве подпредставления. Я удаляю его из представления при любом переходе из его контроллера суперпредставления, однако мне пришло в голову, что, если у меня будет сотня этих контроллеров представления, быть на 100-м из них означает, что 99 представлений будут выгружены. Разве это не очень больная проблема, или я безумно волнуюсь? Потому что я не знаю, как сделать это по-другому. Спасибо.

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Вы движетесь строго в одну сторону, то есть когда-либо нажимаете на контроллеры вида и никогда не нажимаете на них?Это довольно плохая практика, хотя при правильном управлении памятью вы можете получить очень большое количество VC в стеке до того, как ваше приложение выйдет из строя.четвертый стек (например, контроллер навигации) или используя глобальный элемент управления, такой как панель вкладок, вам, вероятно, лучше удалить предыдущее представление из его суперпредставления и заменить его новым представлением.Например, в вашем приложении делегат:

-(void)switchToView:(UIViewController*)newVC
{
    if (self.currentVC!=nil)
        [self.currentVC.view removeFromSuperview];
    self.currentVC = newVC;
    [self.window addSubview:newVC.view];
}
0 голосов
/ 29 сентября 2011

UIViewController будет выгружать свой вид, когда это необходимо.Если бы у вас было 100 уровней, у вас было бы загружено только несколько видовВот почему важно реализовать viewDidUnload и установить для IBOutlet s значение nil.

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