在我退出并重新启动应用程序之前,ViewController不会显示

时间:2012-03-21 22:45:38

标签: iphone ios ipad viewcontroller universal

我刚刚通过组合单独的iPhone和iPad项目使我的应用程序更加通用。一切似乎都在起作用,但有一个主要的错误。

当iPad应用程序启动时,它只显示黑屏(可能是窗口)和状态栏。当我按下主页按钮时,我突然看到SplitViewController,因为它消失了。当我再次打开应用程序时,会显示SplitViewController。

我无法弄清楚为什么控制器仅在我关闭并重新打开应用程序后显示。有什么想法吗?

(我不知道造成这种情况的原因是什么,如果您需要来自特定地点的代码示例,请告诉我。)

感谢。

编辑:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [Appirater appLaunched:YES];
    // Registers this class as the delegate of the audio session.
    [[AVAudioSession sharedInstance] setDelegate: self];    
    // Allow the app sound to continue to play when the screen is locked.
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];


justOpened = YES;
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
      {deleted}
} else {
    [self.window addSubview:self.splitViewController.view];
    [self.window makeKeyAndVisible];

    CGRect rect = CGRectMake(-2, self.window.frame.size.height-29, self.window.frame.size.width+2, 29);
    imgBar = [[UIImageView alloc] initWithFrame:rect];
    imgBar.contentMode = UIViewContentModeScaleToFill;
    imgBar.image = [UIImage imageNamed:@"wood_btm.png"];
    imgBar.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin;

    self.splitViewController.showsMasterInPortrait = YES;
    self.splitViewController.title = @"Exams";
    self.splitViewController.splitPosition=280;
}

return YES;
}

更新

通过弄乱窗口的背景颜色,我发现由于某种原因,它位于视图层次结构的顶部。然后我将窗口的背景颜色清晰,我可以看到SplitViewController。奇怪的是我也可以与它互动。所以基本上我通过使窗口清晰来解决问题。这显然不是理想的解决方案,但如果有人能想到原因让我知道。

2 个答案:

答案 0 :(得分:1)

[self.window addSubview:self.splitViewController.view];
[self.window makeKeyAndVisible];
return YES;

应该在-applicationDidFinishLaunching:WithOptions:方法的末尾。

答案 1 :(得分:0)

通过弄乱窗口的背景颜色,我发现由于某种原因,它位于视图层次结构的顶部。然后我将窗口的背景颜色清晰,我可以看到SplitViewController。奇怪的是我也可以与它互动。所以基本上我通过使窗口清晰来解决问题。