Я создаю свое второе приложение и пытаюсь извлечь уроки из тех мест, где я первый раз ткнул пальцами.
Как и в последнем приложении, у меня есть разделы моего приложения, в которых есть вид с кнопками вдоль нижней части (в основном пользовательская панель вкладок), которые инициируют переключение содержимого главной большой области экрана. Один вид карты, другой вид таблицы, другой вид сетки, смотрящий на одни и те же объекты тремя различными способами.
В моем последнем приложении каждый из вариантов содержимого был отдельным представлением, управляемым отдельными ViewControllers. Это сработало, но были места, где было неловко. Передача данных между этими VC была немного хитрой (особенно передача обратно по потоку), и я был полностью смущен моими вложенными контроллерами представления, не имеющими, например, доступа к self.navigationController. Можно утверждать, что теперь я знаю, как работать с этой схемой (и я знаю), но меня интересует лучший путь.
Сейчас я думаю, что, возможно, все это должен быть ОДИН контроллер представления, и он должен иметь отдельные объекты верхнего уровня UIView, которые он меняет при входе и выходе при нажатии на вкладки внизу.
Проблема в том, что у двух моих вложенных представлений есть таблицы. Поэтому мне нужно либо написать ДЕЙСТВИТЕЛЬНО сложные методы UITableViewDelegate, чтобы выяснить, о какой таблице я говорю, либо создать отдельные подклассы UITableViewController для управления данными таблицы. В любом случае, это просто устранило большую часть той простоты, которую я надеялся достичь, храня все это в одном View Controller.
Другое дело, что наличие этих представлений содержимого в виде UIViews внутри одного и того же контроллера представления имеет некоторые последствия. Нет времени загрузки, чтобы поменять представления, но я сжигаю память, которая мне не нужна, если пользователь никогда не посещает одну или несколько из этих альтернатив просмотра.
Мысли