如何从窗口中删除视图?
我使用Cocos2D作为我的主框架。在某些情况下,我想的Cocos2D加载笔尖文件,并有一个是视图:如何从窗口中删除视图?
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代码中被调用)应该从窗口中移除。
首先,您不应该因为想要删除子视图而创建新窗口。其次,无论发生什么,这都不会导致应用程序崩溃。在哪个课程中您有GTFOnow
方法?我想在TargetPlayerViewController
课上?
GTFOnow方法在TargetPlayerViewController中。我希望这个观点能够从窗口中消失。 – 2010-03-29 19:20:43
是的,视图可以从窗口中删除(虽然它是控制器正在删除它,所以它并不真正删除“本身”)。但是,您不需要像在此代码中那样创建新窗口。相反,您需要在启动时在您的应用程序委托中获取对该窗口的引用。这是视图是孩子的窗口,这是你想从中删除的窗口。一般来说,你很少想在iPhone应用程序中创建第二个窗口。 – Felixyz 2010-03-29 22:28:57
“在这种方法中,视图应该从视图中移除”。这很混乱。我想你的意思是视图控制器应该从窗口中删除视图? – Felixyz 2010-03-29 16:03:24