2015-03-26 3 views
2

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

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight]; 
[[UIDevice currentDevice] setValue:value forKey:@"orientation"]; 

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

EDIT:

Моя ситуация в том, что я был назначен с уже сделанного проекта. Парень, который сделал это приложение, использовал STNavigation Manager (я не уверен, конечно, что это такое), а не self.navigationController и нажмите «Поп». Поэтому shouldAutoRotate и эти делегаты не работают в моем приложении. Во-вторых, он также отключил навигационную панель и создал свою собственную навигационную панель.

ответ

0

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

Я нашел лучший способ, чтобы создать подкласс UINavigationController, который запрещает вращение через

-(BOOL)shouldAutoRotate 

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

+0

Вы правы. Но позвольте мне объяснить вам мою ситуацию, мне назначили уже сделанный проект. Парень, который сделал это приложение, использовал STNavigation Manager (я не уверен, что это такое), а self.navigationController толкает и поп-музыку. Поэтому shoudAutoRotate и эти делегаты не работают в моем приложении. Во-вторых, он также отключил навигационную панель и создал свою собственную навигационную панель. –

+0

А я вижу, тогда я думаю, что вы не сможете достичь желаемого отуком. Вы все равно должны установить свойство вращения на навигационном контроллере или реализовать метод на контроллере EVERY view, возвращающем false. – SeanLintern88

+0

Я предполагаю, что мне придется оставить клавиатуру в портретном режиме, а представление в Landscape - GAOfflineTransform, потому что я не вижу другого решения этой проблемы: \ –

0

преобразования собственности Используйте UIView, чтобы повернуть:

-(void)viewWillAppear:(BOOL)animated 
{ 
CGAffineTransform newTransform = CGAffineTransformMake(0.0,1.0,-1.0,0.0,0.0,0.0);   
self.view.transform = newTransform; 

} 
+0

Я сделал это, но, как я сказал в вопросе, что это вращает экран, но при нажатии на текстовое поле для записи в нем клавиатура появляется в портретном режиме, а не в пейзаже. –

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