Вопрос дизайна приложения - PullRequest
2 голосов
/ 08 июня 2011

У меня есть приложение, которое использует UITabBarController в качестве внешнего контейнера. Каждая вкладка использует UINavigationController для своего корневого контроллера представления. Я использую многокнопочную панель инструментов в качестве кнопки правой панели панели навигации. Некоторые из этих кнопок панели инструментов являются универсальными для приложения; некоторые относятся к отдельным вкладкам.

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

Звучит хорошо в теории, но, поскольку я новичок в Objective-C, я приветствую любые дополнительные замечания / советы от более опытных разработчиков.

1 Ответ

0 голосов
/ 08 июня 2011

Если в вашей «конструкции и реализации панели инструментов» достаточно многократно используемого кода, чтобы мотивировать вас реализовать базовый класс и повторно использовать его в своих дочерних классах, то это действительно звучит как хорошее решение.

Oneнужно проанализировать, какой класс вы бы расширили: UIViewController или UIToolBar.

Если вы просто хотите использовать настраиваемую панель инструментов многократного использования, которая изменяет только некоторые визуальные свойства (например, метку левой кнопки или правую кнопку).видимая кнопка или нет, и т. д.), возможно, лучший подход - реализовать базовый класс, который выходит из UIToolBar, и затем использовать его в ваших контроллерах представления.

Но если у вас достаточно сложные логические действия по обработке логикиСоздание кнопок базового класса, расширяющего UIViewController, с помощью кнопок панели инструментов или любого «тяжелого кода», выходящего за рамки простых настроек визуальных свойств, звучит как лучший подход.

Лучший выбор зависит от вас и от того, что вам нужно.Вы хотите реализовать / повторно использовать.

Удачи!

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