Как правильно опубликовать `UIDeviceOrientationDidChangeNotification`? - PullRequest
1 голос
/ 14 марта 2011

Я пытаюсь уведомить мою UIViewController повторно применить макет по ориентации устройства.Для этого я выкладываю UIDeviceOrientationDidChangeNotification в центр по умолчанию.Работало, но без анимации вращения.Я думаю, что я что-то упустил.Как я могу опубликовать UIDeviceOrientationDidChangeNotification правильно?

Ответы [ 3 ]

1 голос
/ 14 июля 2011

Использование:

[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:YES];

вместо этого (замените LandscapeRight при необходимости), так как вы не должны публиковать системные уведомления.

1 голос
/ 06 марта 2014

Он будет публиковать события для вас:

- (void)updateOrientation
{
    [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
}

Но, конечно, вы должны быть более аккуратными и звонить [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications], когда вам нужно остановить вращение, а затем вы звоните [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];, когда выготовы обработать его снова: он вызовет все необходимые обратные вызовы для вашего контроллера представления.

0 голосов
/ 21 марта 2011

Я не думаю, что должно быть что-то, когда вы пытаетесь опубликовать это.Вместо этого он публикуется автоматически при изменении ориентации.Вы должны добавить наблюдателя для уведомления, если вы хотите его использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...