在我的工作应用程序(iOS 7.0.1)中,调用UIDeviceOrientationDidChangeNotification
。
现在,当我在iOS 8.0中运行此应用程序时UIDeviceOrientationDidChangeNotification
没有被调用。
尝试了很多,但没有运气。
修改-1:
我使用下面的代码来添加方向更改的观察者。适用于iOS 7,完美适用于iOS 8.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceOrientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil];
答案 0 :(得分:12)
在我的情况下,经过大量搜索后我发现我犯了一个愚蠢的错误,我的设备potrait方向锁已打开。
请在设置中确认设备方向锁定。
这可能有助于某人。
答案 1 :(得分: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))
{
}
}
答案 2 :(得分:1)
斯威夫特3:
将观察者添加到viewDidLoad中的UIDeviceOrientationDidChange
NotificationCenter.default.addObserver(self, selector: #selector(orientationChanged), name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil)
选择器方法是这样的:
func orientationChanged(notification: Notification) {
}
不要忘记在deinit方法
上添加Remove observerNotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil)