在 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 上启动后出现空白屏幕的主要内容,如果未能解决你的问题,请参考以下文章
升级到 iOS 4.2.1 后,啥可能导致我的应用在启动时显示空白屏幕?