所以我有两种看法。当我启动应用程序时会加载一个视图。然后,当我在该视图上按下按钮时,它会加载另一个视图。
- (IBAction)triggerGame
{
leveldata = [[NSMutableDictionary alloc] init];
[leveldata setValue:@"hide" forKey:@"shootarrow"];
[leveldata writeToFile:[self levelFilePath] atomically:YES];
[leveldata release];
Papertoss_MaraAppDelegate *mainDelegate = (Papertoss_MaraAppDelegate *)[[UIApplication sharedApplication] delegate];
[mainDelegate playGame];
}
此操作会触发委托实现中名为 playGame 的方法,如下所示:
- (void)playGame {
[levelView.view removeFromSuperview];
[self.window addSubview:[gameView view]];
[UIView commitAnimations];
}
这很好地加载了新视图。然后我有另一个按钮,它做同样的事情,但它让我回到第一个视图。它也很好用。我能够很容易地从一个视图导航到另一个视图。但我唯一的问题是,当我再次尝试加载第二个视图时,不会再次调用 viewDidLoad。我通过在 viewDidLoad 方法中使用 NSLog() 对此进行了测试。
为了让我的应用程序执行我想要的操作,我需要再次调用 viewDidLoad。我猜当我在它们之间切换时,我的视图可能没有完全卸载。
任何帮助是极大的赞赏。