Как указал Павел., вам необходимо выполнить свой код в viewDidLoad
.
Из документации Apple.
Этот метод вызывается после того, как контроллер вида загрузил связанные с ним изображения в память. Этот метод вызывается независимо от , независимо от того, были ли представления сохранены в файле nib или созданы программно в методе loadView. Этот метод чаще всего используется для выполнения дополнительных шагов инициализации для представлений , загруженных из файлов nib.
Таким образом, в вашем контроллере вы можете сделать это:
- (void)viewDidLoad
{
[super viewDidLoad];
// your other views here
// call addSubview method on self.view
}
Почему вы это делаете? Потому что здесь вы уверены, что представление загружено в память и выходы установлены правильно.
напротив, о loadView
метод
Если переопределить этот метод для того, чтобы создать свои взгляды вручную, вы должны сделать это и назначить вид корневой иерархии к свойству зрения. (Создаваемые вами представления должны быть уникальными экземплярами, а не должны использоваться совместно с каким-либо другим объектом контроллера.) Ваша пользовательская реализация этого метода не должна быть вызвана супер.
Примером может быть:
- (void)loadView
{
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
UIView *contentView = [[UIView alloc] initWithFrame:applicationFrame];
contentView.backgroundColor = [UIColor whiteColor];
self.view = contentView;
// call addSubview method on self.view
}
Я предлагаю вам прочитать View Controller Programming Guide for iOS.
Надеюсь, это поможет.
Вам нужно использовать 'viewDidLoad', который вызывается после завершения загрузки представления (из' nib'). Вы используете только метод loadView, если вы полностью настраиваете свой код в коде. –