我有一个带有单独 UIViewControllers 和 xibs 的多视图应用程序。我有一个视图是游戏视图,每次我调用它时我都希望它重新初始化,我的意思是在它的初始条件下重新启动,而不是在我上次离开它的状态。
这是我用来加载和删除视图的代码块:
-(void)loadStartViewController {
[currentView.view removeFromSuperview];
StartViewController *startViewController = [[StartViewController alloc] initWithNibName:@"StartView" bundle:nil];
[window addSubview:startViewController.view];
currentView = startViewController;
}
我应该在这里更清楚。在玩游戏时,我有一个 UIViewController 和一个 xib 组成视图。他们调用 UIView 中的方法以编程方式绘制视图。游戏结束时我离开 UIViewController 并进入得分屏幕。我想让用户重新启动并重新进入游戏,IE 用上面的代码加载 UIViewController 但从一个新游戏开始,所有设置都在调用的方法中。我可以设置一个变量并在 UIViewControllers 之间传递它,但我可能有一个命令可以让我重置游戏 UIViewController 所以它不记得任何关于上一场比赛结束时的状态。
为了让它工作,我编写了一个方法来重置 UIView 中绘制游戏屏幕的所有变量,并从 viewDidLoad 部分的 UIViewController 调用该方法。