0

我对如何在我的游戏中最好地执行屏幕转换有点困惑。我需要执行以下转换 [Main Menu] -> [Character Select] -> [Stage Select]

到目前为止,我一直在使用 Interface Builder 从 [Main Menu] 中的控件“单击'n拖动”到 [Character Select] 并选择模态 segue 类型。但后来我意识到,在第二次运行游戏时,玩家不需要再次进入[角色选择]屏幕。然后我会有以下流程 [Main Menu] -> [Stage Select]

所以我的问题是:

1)模态转换是推荐的方式吗?我看到的所有使用模态转换的例子都是弹出或类似的。我不想使用导航栏,因为我认为这些不是游戏的好设计选项。

2) 我在某处看到我不应该在这里使用 segues,而是使用“presentViewController:animated:completion:”,但这让我想到了另一组问题。

3)为了了解presentViewController ...我最终在苹果文档http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html 中没有解释很多事情,

3.1)例如如何在Interface Builder中设置Controller的NIB文件名?(我是否必须创建一个 .xib 文件)。实际上这个 NIB/XIB 文件非常混乱。

我尝试将控制器类的名称作为 NIB 名称传递,如下所示:

MyController* controller = [UIViewController alloc] initWithNibName:@"MyController"...

但我得到一个例外“无法在捆绑中加载NIB......”

3.2)此外,文档指出我应该将 controller.delegate 设置为 self 但 UIController 没有委托属性。我必须自己在呈现的控制器中定义一个委托属性吗?

3.3)第二个参数“bundle”呢,我应该总是传入'nil'还是应该传入mainBundle?

提前致谢。

4

1 回答 1

1

您应该使用 segue 来调用:

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender

当您想要执行[Main Menu] -> [Stage Select]转换时。在你的 UIViewController 子类中创建一个 segue,配置它,然后根据需要使用它。

UIControl或者,在您看来,您已经有了一个[Main Menu] -> [Character Select]可以:

  1. 改变它执行的segue
  2. Menu->Stage在启用和取消隐藏segue控件时禁用并隐藏它
于 2013-04-25T15:31:18.507 回答