Когда я должен использовать метод addSubview контроллера представления? - PullRequest
2 голосов
/ 01 февраля 2010

Я программирую для iPhone, и мне интересно, когда использовать метод представления addSubview, а когда представлять для использования контроллера модального представления (presentModalViewController).Что еще больше усложняет ситуацию, если вы используете навигационный контроллер (а я нет) и вы можете использовать метод pushViewController?

Когда вы будете использовать каждый из них и почему?1005 *

Ответы [ 2 ]

5 голосов
/ 01 февраля 2010

-presentModalViewController и -pushViewController - это два способа достижения одного и того же: отображения нового представления. То, что вы используете, зависит от того, какой пользователь хочет работать. Они означают разные вещи для пользователя, но очень похожи в реализации.

-addSubview совершенно другой. Это добавляет компоненты к текущему представлению. Вы никогда не должны использовать его для отображения независимого интерфейса. -addSubview чаще всего используется при программном создании пользовательского интерфейса в -loadView, хотя у него много других применений.

3 голосов
/ 01 февраля 2010

Вот один из способов взглянуть на это:

Последовательность контроллеров представления в пределах одного контроллера navatoin представляет единый рабочий процесс в голове пользователя. Если в какой-то момент вам нужно прервать текущий рабочий процесс и создать расходящийся рабочий процесс, вы создадите модальное диалоговое окно. Если новый рабочий процесс имеет только один шаг, вы просто представляете соответствующий контроллер, но если есть много шагов, вы создаете новый контроллер навигации, чтобы связать шаги вместе.

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

Метод addSubview находится в другой плоскости абстракции - подпредставления используются для создания двух опытов, которые я описал выше. Вы можете использовать подпредставления, чтобы создать другой опыт, который будет на том же уровне абстракции. Еще пара примеров конструкций на том же уровне - UIAlertView и UIActionSheet.

...