2015-05-27 2 views
0

Не удалось найти это быстро, и я думаю, что это распространенный вопрос, возможно, нет.Разделение раскопок iOS и управление памятью

У меня есть приложение iOS (7.0+) (Swift), и я использую несколько раскадровки.

Например, у меня есть раскадровка для входа в блог StoryBoard, раскадровка новостей и многое другое.

Все эти раскадровки имеют несколько видов со списками (TableView) и некоторые простые представления для деталей.

Dont 'ненавижу меня за это, мы используем значок гамбургера (значок 3-х линейного меню), чтобы открыть навигационный ящик в корневом представлении каждой раскадровки, чтобы переключаться между этими (кроме логинов) раскадровками. Меню может быть неограниченным, поэтому меню гамбургера.

Так у меня есть этот код, который где-то строка на основе (раскадровка)

let storyboard = UIStoryboard(name: storyBoard, bundle: nil) 
    var controller:UIViewController 


    controller = storyboard.instantiateInitialViewController() as! UIViewController 
    AppDelegate.controller!.presentViewController(controller, animated: true, completion: nil) 

это вызовет ли предыдущий раскадровки, чтобы остаться в живых в памяти? Или он будет собран путем утилизации мусора. Я хочу знать, так как у меня есть пара сотен Total ViewControllers, и все эти ресурсы могут стекаться.

Любой, кто может наполнить меня тем, что я должен помнить?

Примечание: У меня есть контроллер, указанный в AppDelegate, я знаю, что это не очень хорошая практика, но я просто использую его для справки и он устанавливается в каждом baseController на ViewDidAppear, поэтому он всегда обновляется.

+0

Если вы продолжаете представлять контроллеры представлений друг на друге, они останутся в памяти. Вам нужно предоставить дополнительную информацию о том, как вы управляете своей иерархией представлений, но похоже, что вы, вероятно, должны использовать контейнер в качестве контроллера корневого представления и попросить представить новый VC - он может затем отпустить старый, если это необходимо – Paulw11

+0

В общем, нет необходимости иметь более одного раскадровки. Мой ответ по умолчанию: Нет, это не в памяти. Но это зависит от онлайн-просмотра и ссылок. Поэтому, если все тщательно очищено, вам не нужно беспокоиться об этом. – Maik639

+0

Привет, как я уже сказал, я не добавляю контроллеры представлений, у меня есть раскадровки с контроллером навигации, который содержит взгляды, когда вы идете глубже, вы можете вернуться обратно со спиной. Я просто интересовался созданием новых раскадровки! –

ответ

0

В iOS 9/OS X 10.11/Xcode 7 вы можете сделать это с помощью раскадровки!

Смотреть это видео (1:13:00 - 1:14:00): https://developer.apple.com/videos/wwdc/2015/?id=102

Раскадровка ссылки помогут вам сохранить ваши раскадровки простые, чистые и разделены.

Каждое устройство iOS 8 может работать под управлением iOS 9. Таким образом, это может быть вариант, если вам разрешено обновлять свой тегет с iOS 7 до iOS 9. (Если у вас достаточно времени для выпуска вашего приложения.)

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