0

所以我通过界面生成器在 mainClass 的 xib 中有一个 UIview。我制作了一个 UIIView 的 IBOutet 并在界面构建中与 uiview 连接。现在在 ViewDidLoad 方法中,我将一个子视图添加到我放入 Interface builder 中的 UIView,如下所示

GameScreen *gameScreen = [[GameScreen alloc]initWithNibName:@"GameScreen" bundle:nil];  //the view beind added
[self.gameScreenView addSubview:[gameScreen view]]; //gameScreenView name of UIView

所以就是正在发生的事情 - 这是来自两个不同版本的图像(并且还没有点击按钮)。在一个版本中,您可以看到视图正常加载,但在其他版本中正常加载(仅显示灰色屏幕)。不知道它为什么这样做。我该如何解决这个问题,为什么会这样?

我之前在这里发布了一个问题,但无法真正解决问题(这不是问题中写的动画问题)

编辑:

在玩了一些代码之后,UIView 不是问题,它必须对 appdelegate 和 mainwindow.xib 做一些事情

感谢人们的帮助,但这只是一个愚蠢的错误,我有 xibs 的重复副本

4

2 回答 2

2

您不应该将您的游戏视图添加到游戏视图屏幕。对于您要完成的工作,听起来像是在做:

[self.view addSubview:gameScreen.view];

会更好。

虽然我不确定。您可能需要详细说明 self.gameScreenView 到底是什么。

于 2012-05-26T21:04:31.973 回答
1

这里有些不对劲。看起来您正在加载一个全新的控制器,只是为了让主视图脱离 nib。您需要将 gameScreen 作为一个全新的控制器吗?

NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"GameScreen" owner:nil options:nil];
[self.gameScreenView addSubview:[views objectAtIndex:0]];

这会将笔尖的所有视图加载到一个数组中,而无需处理控制器如何加载笔尖的混乱。它可能对你更有效。

于 2012-05-26T20:26:54.450 回答