shouldAutorotateToInterfaceOrientation не работает

Я писал свое Повсеместное применение в режиме портрета, и теперь приблизительно после 15 файлов пера, много много viewCotnrollers, я хотел бы реализовать shouldAutorotateToInterfaceOrientation и разработать некоторые экраны в Альбомном режиме.

добавление:

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

ко ВСЕМ моим viewControllers, не делает работы.

Во время Отладки я вижу, что этот метод называют, но это просто не будет работать! не в средстве моделирования, не в устройстве, не в iPhone, не в IPad!

я искал некоторые ответы на форуме и видел, что некоторые советуют для использования:

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

Не сделал работавший также,

добавление:

 [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

и

 [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

к моему viewDidLoad и viewDidUnload соответственно не сделал работавший также.

Я заблудился.. Любая справка сделает!

просто еще одна информация... все мои Представления имеют тип UIControl, когда мне был нужен TuchUpInside для работы.

Appriciate Ваша справка.

18
задан Trott 14 November 2011 в 03:06
поделиться

1 ответ

Убедитесь, что все ваши родительские представления имеют autoresizesSubviews = YES. Вам может потребоваться сделать это в коде, если вы не установили пружины и распорки в IB для всех ваших представлений.

Цитата из Руководства пользователя Interface Builder:

Важно: в файле какао-пера, если вы не устанавливайте пружины или стойки для ваше представление в Интерфейсном Разработчике, но затем используйте setAutoresizingMask: метод для добавления поведения автоматического изменения размера в время выполнения, ваше представление может все еще не показать правильное автоизменение размера поведение.Причина в том, что интерфейс Builder отключает автоматическое изменение размера родительский вид дочерних элементов в целом, если у этих детей нет источников и распорки установлены. Чтобы включить автоматическое изменение размера поведение снова, вы должны передать ДА на setAutoresizesSubviews: метод родительский вид. После этого дочерние представления должны автоматически изменяться в размерах.

Еще пара вещей, о которых следует знать:

  1. UINavigationController будет выполнять автоповорот только в том случае, если его корневой контроллер представления также настроен на автоповорот.

  2. UITabBarController будет выполнять автоповорот только в том случае, если все его контроллеры представления настроены на автоповорот.

44
ответ дан 30 November 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: