2012-06-14 3 views
0

У меня этот код (Книга1 является UIViewController класс)UIView переходы с неправильной ориентацией

Book1 *book = [self.storyboard instantiateViewControllerWithIdentifier:@"Book1ID"];  
[UIView transitionFromView:self.view toView:book.view duration:1 options:UIViewAnimationOptionTransitionCurlDown completion:nil]; 

Нагрузки ViewController но это ориентация является неправильным. Он загружается в режиме «Портрет», но я хочу, чтобы он загружался в «Пейзаж».

У меня есть следующий код в книге 1 уже, но как только представление загружено, вся авторотация, похоже, терпит неудачу.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ 
return interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight;} 

Как загрузить этот вид в ландшафте?

+0

вашего дизайна раскадровки в ландшафтном режиме? –

+0

Да, но я обнаружил, что любая кнопка, которую я нажимаю на вновь созданный UIView, дает мне сообщение об ошибке: сообщение отправлено на освобожденный экземпляр – Fellowsoft

+0

Я исправил ошибку деактивированного экземпляра, но страница все еще не открывается в ландшафтном представлении – Fellowsoft

ответ

2

Я не нашел эту проблему с моим предыдущим но я нашел другой способ сделать это.

Вот как:

book = [self.storyboard instantiateViewControllerWithIdentifier:@"Book1ID"]; 
book.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
[self presentViewController:book animated:YES completion:^(void){}]; 

Особая благодарность Aalok Париой за вашу помощь

0

Так ли вещи, как ниже:

Первый

Supported Device Orientations

Просто выберите эти два направления в поддерживаемых ориентации устройств :)

Второй

plist file key entry

Теперь добавьте ключ последний в изображенииInitial interface orientation и значение, которое вы хотите одно из двух значений пейзажных из списка

Третьем

Теперь добавьте ниже функцию для всех ваших контроллера .m файл

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

Forth

Просто построить и запустить свой проект :)

Это теперь ваше приложение ограничено ландшафтном режиме только

Happy Codding :)

+0

Во-первых, спасибо за вашу помощь и терпение. Я выполнил эти инструкции к письму, но переход по-прежнему показывает портрет. Автоматическое вращение (например, я поднимаю ipad вверх и поворачивая его) также не имеет никакого эффекта. Это похоже на то, что класс создается только частично, а лишний материал, например, делегаты и т. Д., Не работает – Fellowsoft

+0

«переход все еще показывает portait» означает? все же вид при запуске находится в портретном режиме? Это правда? Но это работает для меня хорошо. –

+0

no view at launch находится в ландшафте. Когда я пытаюсь загрузить второй просмотр программно (как и в первом блоке кода, который я разместил), что второе представление показывает, что в режиме «Портрет» и «Автоматическое вращение» не работает – Fellowsoft

Смежные вопросы