应用程序在改变时忽略了我的方向
App is ignoring my orientation when it changed
我有问题。我在这里解决了这个问题 ()
但现在我的应用忽略了我的 orientation
。如果我输入了登录数据并加载了新网站,但 orientation
不一样,应用程序将忽略新的 orientation
.
dispatch_async(dispatch_get_main_queue(), ^{
NSNumber *value = [NSNumber alloc];
NSLog(@"Inside!");
NSLog(@"Orientation: %@", [self orientNr]);
if( [[self orientNr] isEqualToNumber:@1] ) value = [NSNumber numberWithInt:UIInterfaceOrientationUnknown];
else if( [[self orientNr] isEqualToNumber:@2] ) value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
else if( [[self orientNr] isEqualToNumber:@3] ) value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
});
该应用程序正在进入此块,因为我在控制台上收到了两个日志。 orientation
是正确的,但不会执行。
为什么应用忽略了我的 orientation
?如果我重新启动应用程序,它总是纵向的,尽管它应该是横向的。
编辑:
在我的文件中 plist.info 我配置了支持的界面方向
编辑 2:
我的代码看起来像
[3]
我已经在一个新项目中测试了你的代码并且它有效。
如果您正确配置了 "Supported Interface orientations" 条目,请检查您的 info.plist:
还有另一种强制旋转的方法:
#import <objc/message.h>
然后当你想强制 landscapeLeft 方向使用这个:
((void (*)(UIDevice *, SEL, int))objc_msgSend)([UIDevice currentDevice],@selector(setOrientation:),UIInterfaceOrientationLandscapeLeft);
我有问题。我在这里解决了这个问题 ()
但现在我的应用忽略了我的 orientation
。如果我输入了登录数据并加载了新网站,但 orientation
不一样,应用程序将忽略新的 orientation
.
dispatch_async(dispatch_get_main_queue(), ^{
NSNumber *value = [NSNumber alloc];
NSLog(@"Inside!");
NSLog(@"Orientation: %@", [self orientNr]);
if( [[self orientNr] isEqualToNumber:@1] ) value = [NSNumber numberWithInt:UIInterfaceOrientationUnknown];
else if( [[self orientNr] isEqualToNumber:@2] ) value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
else if( [[self orientNr] isEqualToNumber:@3] ) value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
});
该应用程序正在进入此块,因为我在控制台上收到了两个日志。 orientation
是正确的,但不会执行。
为什么应用忽略了我的 orientation
?如果我重新启动应用程序,它总是纵向的,尽管它应该是横向的。
编辑:
在我的文件中 plist.info 我配置了支持的界面方向
编辑 2:
我的代码看起来像
我已经在一个新项目中测试了你的代码并且它有效。 如果您正确配置了 "Supported Interface orientations" 条目,请检查您的 info.plist:
还有另一种强制旋转的方法:
#import <objc/message.h>
然后当你想强制 landscapeLeft 方向使用这个:
((void (*)(UIDevice *, SEL, int))objc_msgSend)([UIDevice currentDevice],@selector(setOrientation:),UIInterfaceOrientationLandscapeLeft);