2011-01-04 3 views
4

Я пытаюсь заставить мое приложение вращать интерфейс, когда само устройство вращается, но я не могу понять это правильно. Я добавил поддерживаемые интерфейсы в файл информации plist и возвратил yes для функции shouldRotateToInterfaceOrientation.Включить ориентацию интерфейса iPhone

 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) { 
     return YES; 
    } else { 
     return NO; 
    } 
} 

Это как вращение реализовано?
Пожалуйста, помогите!

+0

Если вы установите BP для этих методов, будет ли он ударяться при повороте устройства? – psychotik

+0

Я не уверен, что такое BP, извините, я новичок в среде программирования iOS. – Olsi

+0

BP = точка останова –

ответ

0

Убедитесь, что вы добавили shouldRotateToInterfaceOrientation в контроллеры представлений, которые вы хотите поддерживать разными ориентациями. Он не входит в делегат приложения.

+0

Да, я добавил его к каждому контроллеру представления отдельно. – Olsi

0

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

Если вы используете UITabController, все представления должны поддерживать одни и те же ориентации, в противном случае по умолчанию это значение минимально (например, портрет), я считаю.

Кроме того, если вы используете NIB для своих представлений, убедитесь, что при настройке представления в Interface Builder убедитесь, что у вас есть «Autoresize subviews».

+0

Да, у меня есть приложение TabBar в приложении, и все представления имеют тот же код, что и выше, но он все еще не вращается в симуляторе. В представлениях также есть навигационные контроллеры, и я добавил их программно. Может ли это быть причиной, по которой она не вращается? Другие элементы зрения были добавлены в IB, и они вращаются в IB. Большое спасибо за время :) :) :) – Olsi

0

Если вы используете UITabBarController, тогда вам нужно будет называть его подпунктами 'shouldAutoratateToInterfaceOrientation.

Предположим, у вас есть две вкладки, попробуйте добавить следующие две строки к методу shouldAutorotateToInterfaceOrientation в классе, который использует UITabViewController.

[[tabBarController.viewControllers objectAtIndex:0] shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 
[[tabBarController.viewControllers objectAtIndex:1] shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 

конечно «tabBarController» должна быть связана с UITabBarController в файле XIB через IB.

Спасибо,

1

Может попробовать редактирования info.plist, а также добавить свои поддерживаемые ориентации там?

Выберите проект -> Выберите цель -> Информация -> Поддерживаемое интерфейс ориентацию и нажмите на знак плюс 4 раза, чтобы поддержать эти направления:

Item 0 Landscape (left home button) 
Item 1 Landscape (right home button) 
Item 2 Portrait (top home button) 
Item 3 Portrait (bottom home button) 

Надеется, что это помогает!

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