2013-07-19 3 views
0

У меня есть compex UIViewController (и связанный с ним просмотр). Он состоит из нескольких подзонов с их собственными контроллерами представлений. (например, несколько подклассов UITableViewController, пользовательские ViewContorllers и т. д.).Несколько отношений UIViewControllers и UIViews

Считаете ли вы, что это будет хорошее решение хранить ссылки контроллеров дочерних представлений в корневом представлении (не вид контроллера). Я строй структуры вида в классе вида корня прямо сейчас как это (один из немногих способов для добавления вида/ViewController):

- (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

Я думаю, что лучшим решением является:

Один ViewController на одном экране. Все таблицы, кнопки, представления и т. Д. Имеют один общий делегат - этот viewController. Не пытайтесь отделить свою логику от некоторых контроллеров. Вы пытаетесь добавить еще один контроллер просмотра из-за того, что вы все еще разошлись.

Также я знаю, что два плохих пути, на мой взгляд, они не так просто в этом случае:

  1. Вы можете создать одноэлементный класс в качестве менеджера для этого контроллера. Он будет обрабатывать всю логику с этих контроллеров, но не создавать класс «бог».
  2. Все контроллеры разделены и наблюдают/публикуют сообщения через механизм Notification.
Смежные вопросы