2010-12-02 2 views
9

Направляющие состояния Вид программирования контроллера Использование этого Что касается зрения контроллера:Использование пользовательского вида контроллеров для управления различными частями одной и той же точки зрения иерархии

Каждый пользовательский объект вид контроллера вы создать отвечает за управление всеми из просмотров в одном виде Иерархия. В iPhone-приложениях просмотров в иерархии представлений традиционно охватывают весь экран, , но в приложениях iPad они могут охватывают только часть экрана. Индивидуальное соответствие между диспетчером представления и представлениями в его иерархии представлений является ключевым проектом рассмотрения. Вы не должны использовать несколько контроллеров пользовательского вида до управлять различными частями той же иерархией представлений. Аналогично, вам не следует использовать один пользовательский вид объект контроллера для управления множеством экранов.

Я понимаю, что если мы будем использовать несколько настраиваемое представление контроллер для управления части в целях (то есть контроллер вида для управления подвиды из основного зрения, которая, в свою очередь управляется с помощью контроллера представления) методы по умолчанию, как:

didReceiveMemoryWarnings 
viewWillAppear 
viewWillDisappear 
viewDidUnload 

и т. Д. И т. Д. Не будет называться.

Кроме того, существует ли еще одна веская причина, почему мы не должны использовать несколько контроллеров просмотра для управления соответствующими представлениями представления?

документация также обеспечить альтернативное решение, которое гласит:

Примечание: Если вы хотите разделить иерархию зрения на несколько подзон и управлять каждым из них в отдельности, использовать общие объекты управления (пользовательские объекты, спускающиеся с NSObject) вместо объектов контроллера контроллера управлять каждым подрайоном. Затем используйте один объект управления объектами для управления объектами контроллера общего назначения .

Но нет никакого упоминания относительно почему несколько контроллеров просматривать не должны быть предпочтительным. Мой вопрос:

Почему мы не должны так любить?

Я обеспокоен тем, что предпочитаю использовать подкласс UIViewController для управления своими представлениями, поскольку каждый раз я загружаю их из nib, и я разделяю наконечники для каждого контроллера вида. Легко обслуживать изменения на более поздних этапах проекта. Это неправильно? Должен ли я изменить свой стиль программирования, или это нормально, если я продолжу этот подход?

Спасибо,

Радж

ответ

3

Ну, я бы сказал, что «до тех пор, как она работает», вы можете продолжать делать, как вы делаете! Но чтобы вещи «чище», я использовал бы свои собственные объекты. Поскольку ViewControllers разработаны с учетом других общих функций (например, с помощью контроллеров навигации и контроллеров панели управления), что делает его «тяжелым» для простого использования, как и вы. Плюс, как вы упомянули, некоторые события вызывается только в том случае, когда представление viewController добавлено в главное окно.

Не можете ли вы использовать свои собственные объекты с помощью Interface Builder? Если вы создаете один (или несколько) UIView IBOutlet (s), он должен работать одинаково.

+0

Да, это можно сделать, я могу создать подкласс NSObject и обозначить его как владельца файла для этого nib. Но мне было интересно, есть ли какие-то другие причины, почему бы не сделать это так. На данный момент ваше объяснение объекта, «тяжелого», достаточно. – 2010-12-02 11:14:56

0

У меня есть приложение, которое использует два UIViewControllers на одном экране. Ребенок является UITableViewController. Я не полагаюсь ни на какое поведение UIViewController для ребенка - только методы UITableViewController. Это удобно, потому что есть другие случаи, когда дочерний UITableViewController управляет всем экраном. И в этом случае он использует методы UIViewController. Сомнительный дизайн? Может быть. Он отлично работает уже два года. Но я не уверен, что рекомендую шаблон.

Смежные вопросы