2012-08-27 63 views
0

我正在开发一款游戏,我想在几个视图之间切换,例如菜单屏幕,游戏屏幕,游戏结束屏幕等。这样做最简单的方法是什么?我不确定是否应该使用视图堆栈,因为视图显示的顺序并不总是颠倒。如何以编程方式在视图之间切换?

回答

1

我认为“视图堆栈”是指UINavigationController?

最简单的方法是保持引用的所有视图控制器的地方,比如我看到人们使用应用程序委托很多,所以你的应用程序委托的类扩展看起来有点像:

@interface AppDelegate() 

@property (nonatomic, strong) UIViewController *rootViewController; //this is what gets set as the window's root VC 
@property (nonatomic, strong) UIViewController *mainScreenViewController; 
@property (nonatomic, strong) UIViewController *gameScreenViewController; 
@property (nonatomic, strong) UIViewController *gameOverScreenViewController; 

@end 

假设rootViewController只是控制应用程序其余部分的容器视图(您可能会将所有这些逻辑放入根视图控制器,尽管...)

现在,无论何时您需要显示某个屏幕,一种方法,如:

- (void)switchToViewController:(UIViewController *)viewController 
{ 
    [self.rootViewController.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; 
    [self.rootViewController.view addSubview:viewController.view]; 
} 

现在,您可以编写一个名为更加难忘像-switchToGameOverScreen

- (void)switchToGameOverScreen 
{ 
    [self switchToViewController:self.gameOverScreenViewController]; 
} 

方法视图导航的这一基本格局是约UITabBarController发现并常在UISegmentedControl●可控制的观点。

希望这有助于!

+0

好的,谢谢。所以我不应该使用任何storyboard/segue功能? – DanielGibbs

+0

这听起来像是一个体面的选择,如果你不需要支持iOS 4的话(我常常必须这么做,可能为什么我不这样认为);)。这取决于应用程序视图之间的流程有多复杂,以及在故事板中进行建模需要多少工作,而只需在代码中完成。 –

+0

:/我没有意识到故事板只与iOS5 +兼容,当我创建一个默认使用它的新项目时,我不知道该如何去做。 – DanielGibbs

0

如果您正在开发在科科斯-2D游戏,场景之间的转换可以做这样的:

[CCDirector sharedDirector] replaceScene:[CCTransitionCrossFade transitionWithDuration:0.5F场景:GAMEOVER现场]]] ;

在这里GameOver是一个新的场景,它追求过渡效果。

有在茯苓-2d中许多其它转变为从一个场景到另一个即 0 CCTransitionCrossFade 1. CCTransitionFade 2. CCTransitionFadeBL 3. CCTransitionFadeDown 4. CCTransitionFadeTR 5. CCTransitionFadeUp 6. CCTransitionFlipAngular 7. CCTransitionFlipX 8. CCTransitionFlipY 9. CCTransitionJumpZoom 10. CCTransitionMoveInB 11. CCTransitionMoveInL 12. CCTransitionMoveInT 13. CCTransitionPageTurn 14. CCTransitionRadialCCW 15. CCTransitionRotoZoom 16. CCTransitionShrinkGrow 17. CCTransitionSlideInB 18. CCTransitionSlideInL 19. CCTransitionSlideInR 20. CCTransitionSlideInT 21. CCTransitionSplitCols 22. CCTransitionSplitRows 23. CCTransitionTurnOffTiles 24. CCTransitionZoomFlipAngular 25. CCTransitionZoomFlipX 26 。CCTransitionZoomFlipY

谢谢

相关问题