iOS在另一个uiview中加载uiview

时间:2012-05-26 20:05:31

标签: iphone objective-c ios uiview

所以我通过界面构建​​器在mainClass的xib中有一个UIview。我创建了一个UIOiew的IBOutet,并在界面构建中与uiview连接。现在在ViewDidLoad方法中,我将UIView添加到我在“界面”构建器中添加的子视图

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

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

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

编辑:

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

感谢大家的帮助,但这只是一个愚蠢的错误,我有重复的xib副本

2 个答案:

答案 0 :(得分:2)

您不应将游戏视图添加到游戏视图屏幕。通过你想要完成的任务,听起来像是在做:

[self.view addSubview:gameScreen.view];

会更好。

虽然我不确定。您可能需要详细说明self.gameScreenView的确切内容。

答案 1 :(得分:1)

这里有些不对劲。看起来你正在加载一个全新的控制器,只是为了从笔尖中取出主视图。你需要gameScreen作为一个新的控制器吗?

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

这会将nib的所有视图加载到一个数组中,而不会处理控制器如何加载nib的混乱。它可能对你有用。