我对如何在游戏中最好地执行屏幕转换感到困惑。我需要执行以下过渡[主菜单] - > [字符选择] - > [舞台选择]
到目前为止,我使用Interface Builder从[主菜单]中的控件“单击”拖动“到[字符选择]并选择模态segue类型。但后来我意识到,在第二轮游戏中,玩家不需要再次进入[角色选择]屏幕。然后我有以下流程[主菜单] - > [舞台选择]
所以我的问题是:
1)模态转换是推荐的做法吗?我使用模态转换看到的所有示例都是弹出窗口或类似的。我不想使用导航栏,因为我认为这些不是游戏的好设计选择。
2)我在某个地方看到我不应该在这里使用segues,而是使用“presentViewController:animated:completion:”但这导致了另一组问题。
3)为了理解presentViewController ...我最终进入了苹果文档http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html 这并不能解释很多事情,
3.1)例如如何在Inteface 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?
提前致谢。
答案 0 :(得分:1)
您应该使用segue来调用:
- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender
当您想要执行[Main Menu] -> [Stage Select]
转换时。在UIViewController子类中创建一个segue,对其进行配置,然后根据需要使用它。
或者,在您的视图中,您可以UIControl
获得[Main Menu] -> [Character Select]
:
Menu->Stage
segue