更改视图时出现黑屏

时间:2012-06-08 22:53:38

标签: iphone ios xcode

我在Xcode中创建了一个游戏,现在我决定添加一个菜单,菜单是第一个加载视图,所以我改了

self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

为:

self.viewController = [[[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil] autorelease];

现在我的游戏所在的视图是:ViewController.m,然后从我去的菜单中找到:

-(IBAction)gogame:(id)sender {
UIViewController *Game = [[UIViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:Game animated:YES];}

因为我需要给ViewController.m一个名字,我改变了.h和.m:

@interface ViewController到.hface中的@interface GameViewController

和@implementation ViewController到.m实现@implementation GameViewController

现在我在菜单“gogame”中按下按钮运行它,当我点击按钮它从菜单进入黑屏时,它不会崩溃或任何东西它只显示状态栏和黑屏。 xCode给我的唯一问题是app delegate:从'MenuViewController *'分配给'GameViewController *'的不兼容指针类型。

我不知道为什么这不起作用我希望有人可以解雇我并告诉我如何解决这个问题。感谢

1 个答案:

答案 0 :(得分:1)

单独使用UIViewController没什么用处,它是为了添加行为而提供的,所以在你的方法中:

以下是此方法的版本:

-(IBAction)gogame:(id)sender {
    UIViewController *Game = [[UIViewController alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:Game animated:YES];
}

它完全按照你所说的去做,提供了一个提供UIViewController的框架。您尚未添加任何额外行为或自定义视图。

我无法完全解释您当前的代码设置,但听起来您的新类GameViewController就是您要显示的内容,因此将其更改为:

-(IBAction)gogame:(id)sender {
    GameViewController *Game = [[[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil] autorelease];
    [self presentModalViewController:Game animated:YES];
}

根据您对类名的重命名/重构,我不确定控制器的xib文件名是什么。它是原始的“ViewController”还是你还将它更新为“GameViewController”(就像你应该的那样)?

关于警告,你在哪里创建和分配GameViewController?