1
    - (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
NSLog(@"-------");}

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

в TableViewController не попадаю в данный обработчик события. Что сделать?
1
  • С какой целью вы хотите перехватить событие? Может, что-то подскажу. Но на события вращения лучше логику не добавлять - плохо все обрабатывается. Например, в случае, если приложение ушло в бегграунд, а потом устройство повернули и вернули приложение в активнное состояние. 1 окт 2014 в 6:08

1 ответ 1

1

Начиная с iOS 6 метод shouldAutorotateToInterfaceOrientation объявлен устаревшим (deprecated), а за логику работы autorotation отвечают два других — supportedInterfaceOrientations и shouldAutorotate

http://habrahabr.ru/post/155969/

upd. мне чтобы дать комментарий не хватает понимания ситуации. вот код который у меня работает в рутконтроллере (надо также в target проекта выставить галочки для device orientation, это вы думаю знаете)

-(BOOL)shouldAutorotate
{
NSLog(@"shouldAutorotate log");
return TRUE;
}

-(NSUInteger)supportedInterfaceOrientations
{
NSLog(@"supportedInterfaceOrientations log");

// return UIInterfaceOrientationMaskAll; или по каждому положению устройства

return  UIInterfaceOrientationMaskPortrait |
        UIInterfaceOrientationMaskPortraitUpsideDown |
        UIInterfaceOrientationMaskLandscapeLeft |
        UIInterfaceOrientationMaskLandscapeRight;

}

при запуске приложения и тот и тот лог должны быть

1
  • Я добавил методы в модуль контроллера, но не попадаю в shouldAutorotate.
    – Indeets
    2 окт 2014 в 12:49

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.