在不使用导航控制器或以模态方式加载视图的情况下在UIViewControllers之间切换的正确方法是什么

时间:2011-03-03 04:46:19

标签: ios4 uiviewcontroller uinavigationcontroller uitabbarcontroller cocos2d-iphone

我正在尝试在不使用导航控制器,标签栏控制器等的情况下完成切换视图。我目前正在使用Cocos2d导演类replaceScene方法完成此操作。我的应用程序需要有大约40个视图控制器,每个视图控制器都有一些UIButtons可以将它们带到任何其他视图控制器。

例如,View控制器1可能有按钮,可以让您查看控制器2 视图控制器2可能具有链接到3,4,5,12的按钮 视图控制器4可能需要链接到视图控制器17,5和3

我读过的每个教程和一些文档都只讨论了使用导航控制器,标签栏或按模块推送视图。这些解决方案都不符合我的特殊要求。

Cocos2d有“replaceScene”方法,它完全符合我的需要,但混合我需要的许多UIKit控件使得在Cocos2d中开发整个项目成为一场噩梦。

我正在寻找能让用户点击一个按钮的东西,该按钮将指定的视图控制器/视图转换加载到该视图,并从内存中卸载以前的视图控制器。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

拥有一个拥有视图控制器引用的根视图控制器。还要在每个视图控制器中对根视图控制器进行弱引用,如在委托模式中一样。如果其中一个视图控制器想要进行视图转换,请向根视图控制器发送消息。如果需要,让根视图控制器隐藏当前视图并取消隐藏下一个视图。

基本上,您实现的视图容器比UINavigationController和UITabBarController简单得多。您可以使用选项卡栏控制器实现相同的操作并隐藏选项卡栏视图,但我会实现自定义栏视图。