obj-c和cocoa的新手,作为我的第一个(mac os x)应用程序在一个简单的游戏上工作。我有菜单视图和游戏视图:
MenuView.h /米
MenuViewController.h /米
GameView.h /米
GameViewController.h / m
我希望默认显示菜单,当点击播放按钮(在MenuView中)时,我希望菜单消失并显示游戏。我理解行动和渠道,但我不知道从哪里开始让意见交换出来。有帮助吗?看起来我需要以某种方式使我的MenuViewController与我的MainController对话?
答案 0 :(得分:1)
如果您希望它们位于同一窗口并且大小相同,则可以将两个视图放入tabless选项卡视图中。只需切换选项卡即可切换哪个视图可见。
另一种方法是将它们放在不同的窗口中,并为每个窗口使用窗口控制器而不是视图控制器。除此之外,这使得游戏窗口易于用户调整,而不会影响菜单窗口的大小。
答案 1 :(得分:1)
Peter Hosey,
如果您将MenuViewController视为一种“主”视图控制器,在单击播放按钮时,您可以初始化GameViewController的实例:
- (IBAction)gameButtonClicked {
GameViewController *game = [[GameViewController alloc] init];
// we put the game view as the MenuViewController's view
[self setView:game.view];
[game release];
}
当然,您需要导入“GameViewController.h”才能访问它。
答案 2 :(得分:1)
由于你希望你的MenuViewController成为调用和照顾GameViewController的东西,我建议类似于Rafael所说的。尝试将GameViewController的实例放在Interface Builder文件中,但将其隐藏起来。当他们按下“播放”按钮激活游戏时,只需将GameViewController发送到前面并使其可见即可。这有点笨拙,但它确实有效。请记住隐藏有关菜单的所有按钮和互动。你不想在玩游戏时意外激活高分列表!
另外,我建议您查看Utility应用程序。 (它们是您在创建新项目时给出的模板类型之一。)它们是为了在两个单独的视图控制器之间切换而构建的,它可能就是您正在寻找的。 p>