Тебе определенно не следует звонить [super loadView]
.Я бы сказал, что вы нашли ошибку в примере ZoomingPDFViewer.
Вы переопределяете loadView
, когда хотите программно создать иерархию представления для вашего контроллера представления (не используя xib).
Как вы указали, в документах ясно указано, что вы не должны вызывать super.
Ваша пользовательская реализация этого метода не должна вызывать super.
Я предполагаю, что это позволяет избежать загрузки как из XIB, так и программно создать представление, так как этот метод используется базой для загрузки представления из XIB:
Если контроллер представления имеет связанный кончикfile, этот метод загружает представление из nib-файла.
Обратите внимание также, что даже если во время выделения вашего объекта UIViewController
вы передаете nil для параметра nibNameOrNil, что UIViewController
реализация loadView
попытается загрузить любой xib с соответствующим именем класса.
Контроллер представления имеет связанный nib-файл, если свойство nibName возвращает значение, отличное от nil,что происходит, если контроллер представления был создан из раскадровки, если вы явно присвоили ему файл пера с помощью initWithNibName: bundle: метод, или если iOS находит файл пера в комплекте приложений с именем, основанным на контроллере представленияимя класса. Если у контроллера представления нет связанного nib-файла, этот метод вместо этого создает простой объект UIView.
Реальная цель этого метода - дать вам полный контроль над сборкой.иерархия представлений без использования встроенного механизма загрузки xib.:
Вы можете переопределить этот метод для создания ваших представлений вручную.
Лично я переопределяю loadView
если: 1.) XIB, который я бы сделал для него, действительно тривиален или 2.) Компоновка элемента управления очень динамична, поэтому создание xib со статической компоновкой имеет мало преимуществ.