Пользовательский UIViewController не реагирует на поворот устройства - PullRequest
0 голосов
/ 18 марта 2010

У меня есть пользовательский UIViewController, который является единственным подвидом UIView. UIViewController содержит функцию делегата:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

Эта функция вызывается один раз при запуске приложения и никогда больше не вызывается при повороте устройства. Я также заметил, что функция willRotateToInterfaceOrientation никогда не вызывается. Я почти закомментировал весь контент в UIViewController, но он все еще не отвечает на поворот устройства.

Ответы [ 4 ]

2 голосов
/ 18 марта 2010

Я решил решить свою собственную проблему, начав с натяжения, чтобы создать новый UIViewController, и убедился, что он реагирует на поворот устройства. Затем я внес свой код по частям и проверил вращение. В конце концов я нашел основную причину. В моем пользовательском UIViewController у меня было

- (id)initWithFrame:(CGRect)theframe {
    if (self.view = [super.view initWithFrame:theframe])

Работает find excpet, он не отвечает на ротацию устройства, хотя я не вызывал функцию init. Решение простое. Добавьте [self init] в функцию initWithFrame. Спасибо всем за ответ.

1 голос
/ 18 марта 2010

Ваш код выглядит правильно. Я подозреваю, что это что-то в вашем файле .xib (например, неправильный тип объекта для «Владельца файла»), так что, возможно, ваш подкласс контроллера представления вообще не создается Поместите немного входа в viewDidLoad и убедитесь, что он вызывается.

1 голос
/ 18 марта 2010

Попробуйте создать тестовое приложение, которое просто проверяет проблему вращения. Это поможет изолировать вашу проблему.

0 голосов
/ 18 марта 2010

Вам может потребоваться реализовать этот метод в контроллере родительского UIView, так как кажется, что ваше представление заключено в другое представление.

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