2012-02-01 2 views
1

У меня есть простое навигационное приложение, которое имеет 95% всех просмотров, отображаемых в ландшафтном режиме. С одной точки зрения, что имеет смысл показать только в портретном режиме я вставил следующий код:IPad приложение силы вращения

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

Проблема заключается в том, что, когда приложение переходит к представлению (с ландшафтным ориентированной точки зрения) это не переключатель ориентация на портрет, только когда устройство повернуто, оно будет зацикливаться на портрете и останется на портрете. Можно ли заставить его загружать в портретном режиме при загрузке представления?

Спасибо advane

+0

Можете ли вы показать иерархию viewcontroller? приведенный выше код вращения работает только в вашем верхнем диспетчере просмотра, а не на контроллерах view, которые вы ввели в контроллер навигации. – Allen

+0

В этой ситуации самым главным элементом будет навигационный контроллер, который поддерживает все ориентации, о которых я думаю. Я чем толкаю новый контроллер портрета в контроллер навигации через: [self.navigationController pushViewController: portraitDetailsViewContoller animated: YES]; – Matt

+0

контроллер вида, вызывающий [self.navigationController pushViewController: портретDetailsViewContoller animated: YES]; строка кода находится в альбомной ориентации. – Matt

ответ

1

Я думаю, вы должны пройти: shouldAutoRotateToInterfaceOrientation метод UIViewController класса.

Эта функция возвращает ДА, если ориентация поддерживается вашим UIView. Если вы return YES только portrait orientation, тогда iPhone будет автоматически помещен в эту ориентацию.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 
Смежные вопросы