0

メイン フレームワークに 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 コードで呼び出されたもの) がウィンドウから削除されます。

4

1 に答える 1

0

まず第一に、サブビューを削除したいという理由だけで新しいウィンドウを作成するべきではありません。次に、他に何が起こっても、アプリがクラッシュすることはありません。どのクラスにGTFOnowメソッドがありますか? ひょっとして、TargetPlayerViewController授業中?

于 2010-03-29T16:08:13.543 に答える