在應用程序開發過程中,我遇到了問題以支持正確的應用程序體系結構。這對我目前正在開發的應用程序來說是正確的。特別是,我需要支持如下的架構。在應用程序中處理不同的視圖控制器:創建自定義內容視圖控制器
正如你所看到的,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