2014-09-30 3 views
4

В моем рабочем приложении (iOS 7.0.1) вызывается UIDeviceOrientationDidChangeNotification.iOS8 + UIDeviceOrientationDidChangeNotification не получает вызов

Теперь, когда я запускаю это приложение в iOS 8.0, UIDeviceOrientationDidChangeNotification не получает вызов.

Пробовал много, но не повезло.

EDIT-1:

Я должен использовать ниже код для добавления наблюдателя для изменения ориентации. Работает совершенно в прошивке 7. Нет удачи для прошивки 8.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceOrientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil]; 
+0

Не изменяя ничего в моем предыдущем коде, он работал в iOS 8.0. Добавление Observer и скоро – iGW

+0

@iGW Я сделал то же самое. – Kampai

+0

Я отправил свой код. Пожалуйста, смотрите. Его работа в iOS 8.0 – iGW

ответ

3
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 

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

>

-(void)didRotateDeviceChangeNotification:(NSNotification *)notification 
{ 
    UIInterfaceOrientation newOrientation = [UIApplication sharedApplication].statusBarOrientation; 
    if ((newOrientation == UIInterfaceOrientationLandscapeLeft || newOrientation == UIInterfaceOrientationLandscapeRight)) 
    { 

    } 
} 
+0

Я выясню, методы устарели в iOS 8.0. Проверено класс 'UIViewController.h'. – Kampai

+0

@ Kampai, я не думаю, что уведомление о ориентации устройства еще не устарело. –

8

В моем случае, после того, как много поисков, я обнаружил, что я сделал глупая ошибка, что моя блокировка ориентации постороннего устройства включена.

Пожалуйста, подтвердите фиксацию ориентации устройства в настройках.

Это может помочь кому-то.

+0

Такой же пинч !!! :) –

1

Swift 3:

Добавить наблюдателя UIDeviceOrientationDidChange в viewDidLoad

 NotificationCenter.default.addObserver(self, selector: #selector(orientationChanged), name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil) 

метод выбора, как это:

func orientationChanged(notification: Notification) { 

    } 

Не забудьте добавить Удалить наблюдатель от метода Deinit

NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil) 
Смежные вопросы