1

У меня есть контроллер, который должен быть повернут с изменением ориентации интерфейса (устройства). Я отслеживаю изменения ориентации, однако я не могу повернуть представление с помощью изменений orteration устройства.Может ли viewcontroller, представленный модально по текущему контексту (UIModalPresentationStyleOverCurrentContext), поворачиваться с помощью устройства?

Я могу анимировать представления внутри и переключать их ограничения и т. Д., Но я хотел бы использовать классы классов для этого. Когда я переключаюсь на UIModalPresentationStyleCurrentContext при представлении контроллера, он работает, но беспорядок с моей навигацией и табуляцией, и я хотел бы сделать это таким образом.

Это можно сделать таким образом?

ответ

0

Хорошо, решил.

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

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(orientationChanged:) 
              name:@"UIDeviceOrientationDidChangeNotification" 
              object:nil]; 

Затем в orientationChanged:

- (void)orientationChanged:(NSNotification *)notification{ 
    [RecorderViewController attemptRotationToDeviceOrientation]; 
} 

Для того, что для работы в родительском контроллер i добавил:

-(BOOL) shouldAutorotate { 
    return true; 
} 

-(NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

Также для вращения к контроллеру работы рекордера необходимо выполнить следующие действия:

- (BOOL)shouldAutorotate { 
    return true; 
} 




- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskAllButUpsideDown; 
} 

Надеюсь, кто-то посчитает это полезным.