在应用程序开发过程中,我遇到了问题以支持正确的应用程序体系结构。这对我目前正在开发的应用程序来说是正确的。特别是,我需要支持如下的架构。在应用程序中处理不同的视图控制器:创建自定义内容视图控制器
正如你所看到的,MainViewController
是应用程序的主控制器,并具有对应用程序生命周期内管理不同的控制器。在这种情况下,MainController
是管理应用程序不同状态(例如LOGIN_AREA,HOME_AREA等)的一种集中式控制器(其视图的子视图始终在前面,将其视为菜单视图)。
在下面我写了一些考虑,以实现上述架构。
由于MainViewController
需要始终在其他视图前显示其视图的子视图(UIviewControllerX
的视图),因此我将其设置为rootViewController
。
由于MainViewController
必须由其他控制器(例如UIViewControllers1
)访问,它们需要有一个(弱)引用它。
MainViewController
有一个公共方法来管理应用程序状态。它存储当前的控制器,并将其视图添加到选定的控制器视图作为其子视图。例如:
- (void)manageController
{
if(currentState == LOGIN_AREA)
{
self.currentController = [[[LoginViewController alloc] init] autorelease];
}
// other stuff here...
[self.view addSubView:self.currentController.view];
}
上述模式似乎工作,但我不敢肯定,如果它可能是正确的。另外,如果UIViewController
(例如UIViewController1
)必须是UINavigationController
,则情况变得复杂。我已阅读View Controller Programming Guide for iOS。特别是,我发现有趣的部分Creating Custom Content View Controllers,但我还没有找到任何例子来创建一个定制的。
所以,我的问题是以下。
您能否给我建议以实现以下架构?或者你可以给我一些技巧来开发一个自定义内容视图控制器?
预先感谢您。
看来你混淆了UIViewControllers和UIViews? – onnoweb 2012-02-13 16:10:59
也许我的问题不清楚。你为什么想这个混乱?先谢谢你。 – 2012-02-13 16:47:31