Разве плохая практика - создавать уникальные контроллеры представления для разных вкладок, которые делают одно и то же? - PullRequest
0 голосов
/ 21 июня 2010

Хорошо, так что в основном у меня UITabBarController в качестве моего корневого контроллера представления.У меня есть три вкладки, в которые будут вложены объекты UINavigationController, каждый из которых будет управлять тремя представлениями таблиц.

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

У меня вопрос, стоит ли связатьвсе три вкладки в Интерфейсном Разработчике к одному и тому же UINavigationController, но просто заполнить таблицу в зависимости от выбранной вкладки?Или я должен создать полностью независимые объекты для каждой вкладки и скопировать и вставить код?

Первый способ кажется более эффективным и гибким, а второй кажется немного более явным и легким для чтения!

Спасибо за любую помощь:)

1 Ответ

0 голосов
/ 21 июня 2010

Я думаю, что очистка стека контроллера навигации на каждом переключателе вкладок (при условии, что он не скрыт, когда отображается не самый верхний дочерний элемент навигации) будет гораздо более ресурсоемкой, чем все три / четыре UINavigationControllers, доступные постоянно(в основном для быстрого переключения табуляции).

Далее, если владеющий UINavigationController является единственным объектом, который сохранил (владеет) UIViewControllers в стеке, то вы также освободите свой UIViewControllers, еслиВы решаете сбросить стек навигации (сценарий 1-Nav). Если, конечно, они не "статически" присутствуют внутри NIB .

TL; версия DR

Я бы использовал отдельный UINavigationController для каждой вкладки, вПриложение с небольшим объемом памяти увеличит визуальную производительность ваших вкладок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...