如何正确发布`UIDeviceOrientationDidChangeNotification`?

时间:2011-03-14 08:56:29

标签: ios uikit device-orientation

我正在尝试按设备方向通知我的UIViewController重新应用布局。为此,我将UIDeviceOrientationDidChangeNotification发布到默认中心。它工作,但没有旋转动画。我觉得我有些遗失的东西。如何正确发布UIDeviceOrientationDidChangeNotification

3 个答案:

答案 0 :(得分:1)

使用:

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

代替(根据需要替换LandscapeRight),因为您不应该发布系统通知。

答案 1 :(得分:1)

它将为您发布活动:

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

但是,当然,当你需要停止旋转时,你应该更整洁,然后打电话给[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications],然后当你准备再次处理它时你打电话给[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];:它会调用所有必要的视图控制器的回调。

答案 2 :(得分:0)

我不认为当你试图发布时应该有什么。 相反,它会在方向更改时自动发布。如果要使用帽子通知,您应该添加观察者。