在 iPad 上启动后出现空白屏幕

Posted

技术标签:

【中文标题】在 iPad 上启动后出现空白屏幕【英文标题】:Blank screen after splash on iPad 【发布时间】:2012-08-15 14:08:35 【问题描述】:

一位用户发送了一封电子邮件,说在启动 ipad 应用程序时,他看到了启动屏幕,然后 statusBar 变得可见,之后只有空白屏幕。所以他不能继续使用应用程序。用户拥有装有 ios 5.1.1 的 iPad3。我已经测试了所有可能的 iOS 版本和不同的使用场景,但无法重现这种情况。有什么想法吗?

启动代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

[[UIApplication sharedApplication] setStatusBarHidden:NO];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)

    self.window.rootViewController = padMainNavigationController;

else

    self.window.rootViewController = self.tabBarController;

NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];

// 2. Changing the default output audio route
UInt32 doChangeDefaultRoute = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(doChangeDefaultRoute), &doChangeDefaultRoute);
[self.window makeKeyAndVisible];
int cacheSizeMemory = 4*1024*1024; // 4MB
int cacheSizeDisk = 60*1024*1024; // 60MB
NSURLCache *sharedCache = [[[NSURLCache alloc] initWithMemoryCapacity:cacheSizeMemory diskCapacity:cacheSizeDisk diskPath:@"nsurlcache"] autorelease];
[NSURLCache setSharedURLCache:sharedCache];

return YES;

【问题讨论】:

padMainNavigationController 实例化在哪里? 在界面生成器中已连接。 空白屏幕表示 padMainNavigationController 为 nil,或者没有与之连接的视图 已连接,用nslog打印出来时不为nil。应用程序适用于除此之外的其他设备。我无法在此 ipad 上进行测试,因为它是用户自己的,但他只是说它是越狱设备。会是这个原因吗? 在 iPad 模拟器上测试,应该可以重现问题 【参考方案1】:

请参阅White Screen using navigationController - 它解决了我的问题,类似于 OP 中描述的问题。

【讨论】:

以上是关于在 iPad 上启动后出现空白屏幕的主要内容,如果未能解决你的问题,请参考以下文章

iphone应用程序在ipad上运行的问题

iOS 应用程序在设备上启动后连接调试器时冻结在空白屏幕上

升级到 iOS 4.2.1 后,啥可能导致我的应用在启动时显示空白屏幕?

从图库中选择图像后出现空白屏幕

Cordova InAppBrowser 在 iPad iOS 10 上为空白

Phonertc 演示仅在通话开始时显示空白屏幕