gpt4 book ai didi

objective-c - 启动画面问题,Xcode/iOS 6/Phonegap

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:41 26 4
gpt4 key购买 nike

所以,我的 AppDelegate.m 中有这个函数:

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
[CDVLocalStorage __verifyAndFixDatabaseLocations];
NSURL* url = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
if (url && [url isKindOfClass:[NSURL class]]) {
invokeString = [url absoluteString];
NSLog(@"PHR launchOptions = %@", url);
}
CGRect screenBounds = [[UIScreen mainScreen] bounds];
self.window = [[UIWindow alloc] initWithFrame:screenBounds];
self.window.autoresizesSubviews = YES;
self.detailViewController
self.detailViewController = [[MainViewController alloc] init];
self.detailViewController.useSplashScreen = YES;
self.detailViewController.wwwFolderName = @"www";
self.detailViewController.startPage = @"index.html";
self.detailViewController.invokeString = invokeString;
NSString *deviceType = [UIDevice currentDevice].model;

if (![deviceType hasPrefix:@"iPad"] && ![deviceType hasPrefix:@"iPad Simulator"])
{
CGRect viewBounds = [[UIScreen mainScreen] applicationFrame];
detailViewController.view.frame = viewBounds;

BOOL forceStartupRotation = YES;
UIDeviceOrientation curDevOrientation = [[UIDevice currentDevice] orientation];

if (UIDeviceOrientationUnknown == curDevOrientation) {
curDevOrientation = (UIDeviceOrientation)[[UIApplication sharedApplication] statusBarOrientation];
}

if (UIDeviceOrientationIsValidInterfaceOrientation(curDevOrientation)) {
if ([self.detailViewController supportsOrientation:curDevOrientation]) {
forceStartupRotation = NO;
}
}

if (forceStartupRotation) {
UIInterfaceOrientation newOrient;
if ([self.detailViewController supportsOrientation:UIInterfaceOrientationPortrait])
newOrient = UIInterfaceOrientationPortrait;
else if ([self.detailViewController supportsOrientation:UIInterfaceOrientationLandscapeLeft])
newOrient = UIInterfaceOrientationLandscapeLeft;
else if ([self.detailViewController supportsOrientation:UIInterfaceOrientationLandscapeRight])
newOrient = UIInterfaceOrientationLandscapeRight;
else
newOrient = UIInterfaceOrientationPortraitUpsideDown;

NSLog(@"AppDelegate forcing status bar to: %d from: %d", newOrient, curDevOrientation);
[[UIApplication sharedApplication] setStatusBarOrientation:newOrient];
}

self.window.rootViewController = self.detailViewController;
} else {
NavViewController *leftViewController = [[NavViewController alloc] initWithNibName:@"NavViewController" bundle:nil];
UINavigationController *leftNavViewController = [[UINavigationController alloc] initWithRootViewController:leftViewController];
leftNavViewController.navigationBarHidden = YES;

UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
detailNavigationController.navigationBarHidden = YES;

leftViewController.detailViewController = detailViewController;

self.splitViewController = [[UISplitViewController alloc] init];
self.splitViewController.viewControllers = [NSArray arrayWithObjects:leftNavViewController, detailNavigationController, nil];

self.window.rootViewController = self.splitViewController;
self.splitViewController.delegate = detailViewController;
detailViewController.svc = self.splitViewController;
}
[self.window makeKeyAndVisible];

return YES;
}

是的,我知道它有很多代码,但我完全不确定要剪掉什么,因为在这个函数内部我不知道到底出了什么问题。

本质上,我的应用程序在 ipad 上以横向模式加载,但初始屏幕旋转 90 度并显示纵向而不是横向,然后闪回到我的实际初始屏幕。通过查看代码,我可以看出它在设备检查的 else 语句中触发,除此之外我真的可以借助你们的帮助来确定我需要进行哪些更改。

最佳答案

如果您只在应用程序中使用横向模式,请将 setStatusBarOrientation 设置为仅横向模式。

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];

关于objective-c - 启动画面问题,Xcode/iOS 6/Phonegap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12606978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com