如何从窗口中删除视图?

时间:2010-03-29 14:25:06

标签: iphone objective-c cocos2d-iphone subview

我正在使用Cocos2D作为我的主框架。在某些情况下,我希望Cocos2D加载一个nib文件并将其作为视图:

window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
TargetPlayerViewController *myController = [[TargetPlayerViewController alloc]initWithNibName:@"TargetPlayerViewController" bundle:nil];
[window addSubview:[myController view]];
[window makeKeyAndVisible];

这可以按预期工作,并显示TargetPlayerViewController。精彩!

我需要知道的是:一旦加载了该视图,我怎样才能让视图自行删除?我尝试了几种不同的方法,但所有方法都会导致程序崩溃。

要测试我在视图设置上有一个按钮,它会触发此方法:

- (IBAction)GTFOnow:(id)sender {
    NSLog(@"GFTO");
    //window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    //[self.view removeFromSuperview];
    //[window makeKeyAndVisible];
}

GTFOnow是TargetPlayerViewController中的一个方法。调用时,应从窗口中删除当前子视图(在上面的Cocos2D代码中调用)。

1 个答案:

答案 0 :(得分:0)

首先,您不应仅仅因为要删除子视图而创建新窗口。其次,无论发生什么,这都不应该导致应用程序崩溃。您在哪个班级使用GTFOnow方法?我想在TargetPlayerViewController班?