Я недавно обнаружил, что UIView
с должны иметь UIViewController
с, только когда они заполняют все окно (или управляются другим UIViewController
, таким как UINavigationController
или UISplitViewController
).Это предложение взято из документации для UIViewController :
. Вы не должны использовать контроллеры представления для управления представлениями, которые заполняют только часть их окна, то есть только часть области, определяемойпрямоугольник содержимого приложения.Если вы хотите иметь интерфейс, состоящий из нескольких меньших представлений, вставьте их все в одно корневое представление и управляйте этим представлением с помощью контроллера представлений.
Обычно я помещаю логику своего представления в UIView, даже когда оно управляетсяUIViewController, но мне часто приходится обращаться к свойствам UIViewController, таким как его свойство navigationController.Тем не менее, UIViews не должны знать о своем UIViewController.
Мой вывод заключается в том, что логика представления должна идти в UIViewController UIView, когда он существует, и в самом UIView в противном случае.лучше практиковать создание класса контроллера для представления, которое не является подклассом UIViewController?UIPopoverController (подкласс NSObject), по-видимому, следует этому шаблону, хотя в большинстве случаев (UIButton и т. Д.) Представления, по-видимому, не имеют выделенных классов контроллера.