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

Мне было интересно, следует ли реализовать «страницу» как UIView или «страницу» следует реализовать как UIViewController?
Страницы несут ответственность
[*]Чтение/запись из/в CoreData. [*]Возможно хранение UIPageView, по которому пользователь может пролистывать несколько дочерних страниц, как показано в
[*]Удержание UICollectionView. [*]Пользователь может перетаскивать и перемещать элементы в UICollectionView [*]Пользователь может выполнять различные контекстные действия (удаление, клонирование и т. д.) над элементами в UICollectionView. [*]В будущем можно легко перенести на iPad. В настоящее время моя реализация использования UIView следующая.
частный архив функций() { если letrashView = self.trashView { rashView.removeFromSuperview() self.trashView = ноль } если self.archiveView != ноль { возвращаться } пусть archiveView = ArchiveView.instanceFromNib() self.view.addSubview(archiveView) archiveView.translatesAutoresizingMaskIntoConstraints = false archiveView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true archiveView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true archiveView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true archiveView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true self.archiveView = ArchiveView } частная функция мусор () { если пусть archiveView = self.archiveView { archiveView.removeFromSuperview() self.archiveView = ноль } если self.trashView != ноль { возвращаться } пустьrashView = TrashView.instanceFromNib() self.view.addSubview(trashView) rashView.translatesAutoresizingMaskIntoConstraints = false rashView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true rashView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true rashView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true rashView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true self.trashView = просмотр мусора } Я заметил, что если я реализую «страницы» с помощью UIView, я потеряю некоторые возможности UIViewController, например
Обратный вызов [*]viewDidLoad. Обратный вызов [*]viewWillLoad. Обратный вызов [*]viewDidLayoutSubviews. ...
Однако мне неясно, помешает ли мне потеря этих возможностей реализовать правильную «страницу»?
Могу ли я узнать, следует ли мне реализовать эти «страницы» с помощью UIView или с помощью UIViewController?
Мобильная версия