Должна ли логика просмотра идти в UIView или (если применимо ) свой UIViewController?

Недавно я обнаружил, что UIView должны иметь только UIViewController , когда они заполняют все окно (или управляются другим UIViewController , например ] UINavigationController или UISplitViewController ). Эта цитата взята из документации для UIViewController :

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

Я обычно помещаю свою логику представления в UIView, даже если им управляет UIViewController , тем не менее, мне часто нужно получить доступ к свойствам UIViewController, таким как его свойство navigationController. Однако предполагается, что UIViews не должны знать о своем UIViewController.

Я пришел к выводу, что логика представления должна находиться в UIViewController UIView, когда он существует, и в самом UIView в противном случае.

В качестве альтернативы, лучше ли создавать класс контроллера для представления, которое не подкласс UIViewController? UIPopoverController (подкласс NSObject), похоже, следует этому шаблону, хотя в большинстве случаев (UIButton и т. Д.) Представления, похоже, не имеют выделенных классов контроллеров.

7
задан Kampai 8 August 2014 в 18:56
поделиться