我是 iPhone 的新手程序员。在开发我的第一个游戏/应用程序时,我为自己提出了一个问题(创造了一个问题)。我对此进行了研究,并认为我已经看到了答案,但我不明白如何使它们适用于我的应用程序。
我有一个有几个视图控制器的游戏:Welcome、Play、High Scores、Preferences 和 About。我没有我知道的导航控制器或根控制器。编辑 - 我现在有一个 rootview 控制器 - 我添加[self.window setRootViewController:viewController];
到我的 appDelegate.m 文件
从欢迎屏幕/视图控制器我可以转到 Play 视图控制器、关于视图控制器、高分视图控制器或首选项视图控制器。我想让我现在去的任何新控制器负责,这样我就可以关闭 Welcome 视图控制器。事实上,每当我使用视图控制器时,我都希望能够从内存中删除任何其他视图控制器——尤其是我刚刚来自的那个。我可以从大多数视图控制器转到大多数视图控制器。
我使用这个去新的视图控制器:
- (IBAction)playGameAction:(id)sender {
FlipTestViewController *myViewController = [[FlipTestViewController alloc]
initWithNibName:@"FlipTestViewController" bundle:nil];
[UIView beginAnimations:@"flipview" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
forView:self.view cache:YES];
[self.view addSubview:myViewController.view];
[UIView commitAnimations];
}
一旦我安全地进入 FlipTestViewController(播放控制器),我该怎么做才能让 WeclomeViewController 离开?我如何告诉新控制器它现在负责并且其他控制器可以离开?我什至在问一个有意义的问题吗?回复时请用小词和具体例子!谢谢!
根据 rdelmar 的建议,我尝试添加一个调用以将 RootvVewController 更改为我的按钮代码 - 我用来调出新 viewController 的代码:
- (IBAction)playGameAction:(id)sender {
FlipTestViewController *myViewController = [[FlipTestViewController alloc]
initWithNibName:@"FlipTestViewController"
bundle:nil];
[UIApplication sharedApplication].delegate.window.rootViewController = myViewController;
[UIView beginAnimations:@"flipview" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
forView:self.view cache:YES];
[self.view addSubview:myViewController.view];
[UIView commitAnimations];
}
果然,然后我看评论,FlipTestViewController(我的Play Controller)就是新的RootViewController。不幸的是,我得到一个空白屏幕,没有任何类型的转换和日志消息告诉我我的 FlipTestViewController 中的 ViewDidDisappear 正在以某种方式被调用。可能是因为欢迎屏幕仍然存在。也许是内存管理问题?我应该把这个带到一个新的问题上吗?
我刚刚更改了 main.xib 文件的背景颜色,显然这是正在显示的屏幕(空白屏幕)。