Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        5年前关闭。
                                                                                            
                
        
我对如何在游戏中最好地执行屏幕过渡有些困惑。我需要执行以下转换[主菜单]-> [字符选择]-> [阶段选择]

到目前为止,我一直使用Interface Builder从[主菜单]中的控件“单击'n拖动”到[字符选择],然后选择模式选择类型。但是后来我意识到,在第二轮游戏中,玩家不需要再次进入[角色选择]屏幕。然后,我将有以下流程[主菜单]-> [阶段选择]

所以我的问题是:

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

2)我看到我不应该在这里使用segues,而是使用“ presentViewController:animated:completion:”,但是这导致了我另一个问题。

3)为了理解presentViewController ...我最终进入了苹果文档http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html
并不能解释很多事情,

3.1)例如,如何在Inteface Builder中设置控制器的NIB文件名? (是否必须创建一个.xib文件)。实际上,这个NIB / XIB文件非常令人困惑。

我试图将控制器类的名称作为NIB名称传递:

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


但出现异常“无法在捆绑包中加载NIB ...”

3.2)同样,文档指出我应该将controller.delegate设置为self,但是UIController没有委托属性。我是否必须自己在提供的控制器中定义一个委托属性?

3.3)关于第二个参数“ bundle”,我应该始终传递“ nil”还是应该传递mainBundle?

提前致谢。

最佳答案

您应该在调用以下命令时使用segue:

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


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

或者,在您看来,您已经为UIControl设置了[Main Menu] -> [Character Select],您可以:


改变执行的顺序
禁用它并隐藏它,同时启用和取消隐藏Menu->Stage segue控件

关于ios - 如何动态决定要切换到哪个屏幕(iOS游戏),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16218496/

10-12 00:19
查看更多