UIWindow и UIView addSubview Вопрос

Действительно ли метод addSubview загружает представление в приложение или нет? Причина, по которой я спрашиваю, заключается в том, что в моем приложении есть два представления. Делегат приложения добавляет два представления в качестве подпредставлений, а затем выводит одно из представлений вперед. Теперь у меня есть оператор печати в каждом из методов viewDidLoad для каждого представления. Когда я запускаю приложение, делегат приложения загружает представления как вложенные представления, и по мере загрузки каждого представления я фактически вижу, как консоль распечатывает операторы, которые я поместил в каждый из методов viewDidLoad. Это должно быть так?


person Josh Bradley    schedule 10.07.2009    source источник


Ответы (2)


viewDidLoad на самом деле является методом UIViewController, а не UIView. Он вызывается после загрузки представления в память (после вашего метода инициализации, но до awakeFromNib). Вы заметите, что addSubview: принимает UIView в качестве параметра, поэтому представление должно быть загружено, чтобы оно было добавлено в другое представление. В противном случае вы бы попытались добавить воображаемый вид.

Отвечая на ваш вопрос, да, он должен это делать. viewDidLoad вызывается задолго до того, как вы добавляете Subview. Фактически, если вы удалите строки addSubview :, вы заметите, что он все еще вызывается (потому что вы создаете контроллер представления).

person Dave DeLong    schedule 10.07.2009
comment
Итак, если у меня есть 10 просмотров ... все 10 загружаются? Что случилось с загрузкой представлений только по мере необходимости? Итак, добавление subView в окно ... действительно ли это просто показать? Где код, который на самом деле выполняет ЗАГРУЗИТЬ это представление? - person Bonnie; 26.02.2010

Насколько я понимаю, представления загружаются лениво. Если ваш viewcontroller имеет 10 представлений, они не все загружаются, пока вы не попытаетесь получить к ним доступ.

person Mark Suman    schedule 24.11.2010