3

コードのテストと記述のために、GameViewContrrler を再起動する必要があります

GameViewController *controller = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil];
[self presentModalViewController:controller animated:NO];

このメソッドはviewControllerを再起動しますが、再起動しないたびにアプリケーションメモリが増加するため、アクション/プロセスが進行しているため、すべてがメモリに保存されます。これは正しい方法ではないと思います。viewController をメモリで完全にオーバーロードし、すべてのプロセスを削除してやり直す方法を知りたいです。

アップデート

- (IBAction)restartButtonPress {
  //  GameViewController *controller = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil];
  //  [self presentModalViewController:controller animated:NO];

[self.view setNeedsDisplay];
}
4

2 に答える 2

2

[self.view setNeedsDisplay];ビューをリロードするためにその使用を呼び出します。また、メソッドを使用することもできます[self viewDidLoad]が、それは私たちにとっては良くありません。また、viewDidLoad を手動で呼び出すこともありません。使用できますsetNeedsDisplay

于 2013-03-23T10:46:53.853 に答える
0

これは新しいものを開始するだけです。古いものはリセットされません。

古いものを削除するには、古いものを呼び出す必要があります[controller release]

于 2013-03-23T10:45:25.667 に答える