2013-07-19 52 views
0

我有一個compex UIViewController(和相關的視圖)。它由幾個子視圖和他們自己的視圖控制器組成。 (例如少數UITableViewController子類,自定義ViewContorlers等)。幾個UIViewControllers和UIViews的關係

您認爲將子視圖控制器的引用存儲在根視圖(而不是視圖控制器類)中是一個很好的決定。 我建立在根視圖類的視圖結構現在像(的幾個方法中的一個,用於將視圖/視圖 - 控制):

- (void)addCaroucel 
{ 
    _caroucelViewController = [[CaroucelTableViewController alloc] init]; 
    _caroucelViewController.caroucelView.delegate = self; 
    [self addSubview:_caroucelViewController.caroucelView]; 
} 

據我所知,控制器在某種程度上應在主控制器,但在同時這就像內部實現的視圖,我不想透露主視圖控制器。我認爲視圖層次結構應該構建在視圖類中,而不是視圖控制器中。

您是否看到更好的解決方案?

+0

可能是我不明白你的問題,但如何自定義內容視圖控制器? http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/BasicViewControllers/BasicViewControllers.html#//apple_ref/doc/uid/TP40007457-CH101-SW1 – stosha

回答

0

我認爲,更好的辦法是:

一對一屏幕視圖控制器。所有tableViews,按鈕,視圖等等都有一個共同的委託 - 這個viewController。不要嘗試將你的邏輯分開給一些控制器。你嘗試添加另一個視圖控制器,因爲你已經分開了。

而且我知道在我看來兩個壞的方式,他們沒有那麼簡單在這種情況下:

  1. 您可以創建單獨的類作爲該控制器經理。它將處理來自這個控制器的所有邏輯,但不要創建一個「神」類。
  2. 所有的控制器都是分開的,並通過Notification機制觀察/發佈消息。