所以我通过界面构建器在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副本
答案 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的混乱。它可能对你有用。