【发布时间】:2018-07-13 20:32:14
【问题描述】:
在应用程序开发期间,我无法支持正确的应用程序架构。这对于我目前正在开发的应用程序来说是正确的。特别是,我需要支持如下架构。
如您所见,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 搞混了?
-
也许我的问题不清楚。为什么你会想到这种混乱?提前谢谢你。
标签: ios architecture uiviewcontroller