我想在用户启动应用程序时向他们显示图像。此图像显示 20 秒。
我想要一个功能,当用户在横向启动应用程序时,应用程序保持在横向。当用户以纵向启动应用程序时,应用程序将保持纵向。
我真的很难在 Appdelegate 中配置它,所以我制作了一个单独的视图控制器来显示这个图像。计时器完成后,我导航到下一个应该启用旋转的视图。
那么如何临时锁定 iPad 的 UI 呢?
编辑:
我通过在 Appdelegate 之后的第一个 Viewcontroller 中的 viewDidLoad 中实现方向检查来解决此问题。对于每个方向,我都保存了一个值。执行 shouldAutorotate 时:我首先检查禁用方向更改的保存值。
代码中的解决方案:
- (void)viewDidLoad {
[super viewDidLoad];
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) {
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"PortraitLandscapeIndicator"];
}
else {
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"PortraitLandscapeIndicator"];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
//the latest saved orientation is our orientation
if([[NSUserDefaults standardUserDefaults] integerForKey:@"PortraitLandscapeIndicator"] == 1){
return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}
else{
return ((interfaceOrientation == UIInterfaceOrientationPortrait) || (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown));
}
}