Что правильный путь состоит в том, чтобы добавить ToolBar к UITableView?

Я думаю, вам нужен service, который обрабатывает процесс аутентификации (и его хранилище).

В этом сервисе вам понадобятся некоторые основные методы:

  • isAuthenticated()
  • login()
  • logout()
  • и т.д ...

Этот сервис должен быть внедрен в ваши контроллеры каждого модуля:

  • В разделе вашей панели мониторинга используйте этот сервис, чтобы проверить, аутентифицирован ли пользователь (метод service.isAuthenticated()). если нет, перенаправьте на / login
  • В разделе входа в систему просто используйте данные формы для аутентификации пользователя с помощью вашего метода service.login()

Хороший и надежный пример такого поведения это проект angular-app и, в частности, его модуль безопасности , основанный на потрясающем модуле HTTP-аутентификации-перехватчике

Надеюсь, это поможет

]

25
задан Frank Schmitt 2 July 2009 в 05:09
поделиться

3 ответа

Начиная с OS 3.0, в контроллер навигации встроена панель инструментов. Чтобы она отображалась:

[self.navigationController setToolbarHidden:NO];

Внедрив:

- (void)setToolbarItems:(NSArray *)toolbarItems animated:(BOOL)animated

в контроллер представления, вы можете настроить элементы панель инструментов.

Так что вам больше не нужно беспокоиться о том, где расположена панель инструментов в вашей иерархии.

(исправленная опечатка)

49
ответ дан 28 November 2019 в 18:13
поделиться

Все, что вам нужно, - это реализовать методы UITableViewDelegate и UITableViewDatasource, необходимые для требуемого вам уровня функциональности табличного представления. Эти методы могут быть в любом классе (ах), хотя указанные классы должны соответствовать соответствующим протоколам. Делегат и источник данных должны быть установлены в экземпляре UITableView - либо программно, либо с помощью Interface Builder. Согласно документам, вы потеряете некоторые функции - см. Обзорный раздел .

Лично я считаю, что многие разработчики одержимы предоставлением всей этой функциональности в одном монолитном класс контроллера представления, и, поскольку у них есть табличное представление в их представлении, необходимо использовать подкласс UITableViewController. Тем не мение, Мне нравится рассматривать Принцип единой ответственности , и я часто разбиваю источник данных и делегирую его на отдельные классы, когда сложность не является простой. Код также не привязан к конкретной реализации UIViewController.

В ситуациях, когда у меня есть отдельные классы источников данных / делегатов, я часто конструирую и подключаю их к табличному представлению с помощью Interface Builder, а не в коде. Этот подход (по крайней мере, для меня) соответствует духу внедрения зависимостей , избавляет от написания шаблонного кода и обеспечивает некоторый уровень развязки .

Эти варианты, конечно же, зависят от сложности функциональности, которую вы пытаетесь достичь - для простых реализаций я могу использовать UITableViewController.

Код также не привязан к конкретной реализации UIViewController.

В ситуациях, когда у меня есть отдельные классы источников данных / делегатов, я часто конструирую и подключаю их к табличному представлению с помощью Interface Builder, а не в коде. Этот подход (по крайней мере, для меня) соответствует духу внедрения зависимостей , избавляет от написания шаблонного кода и обеспечивает некоторый уровень развязки .

Эти варианты, конечно же, зависят от сложности функциональности, которую вы пытаетесь достичь - для простых реализаций я могу использовать UITableViewController.

Код также не привязан к конкретной реализации UIViewController.

В ситуациях, когда у меня есть отдельные классы источников данных / делегатов, я часто конструирую и подключаю их к табличному представлению с помощью Interface Builder, а не в коде. Этот подход (по крайней мере, для меня) соответствует духу внедрения зависимостей , избавляет от написания шаблонного кода и обеспечивает некоторый уровень развязки .

Эти варианты, конечно же, зависят от сложности функциональности, которую вы пытаетесь достичь - для простых реализаций я могу использовать UITableViewController.

2
ответ дан 28 November 2019 в 18:13
поделиться

Кори Флойд в основном прав, за исключением того, что

[self.navigationController setToolBarHidden:NO];

должно быть

[self.navigationController setToolbarHidden:NO];

То есть "b" в "setToolbarHidden" должно быть в нижнем регистре. Кроме того, имя метода, указанное в Справочнике по iPhone OS , на самом деле является

- (void)setToolbarHidden:(BOOL)hidden animated:(BOOL)animated

, хотя кажется, что пропуск параметра animated тоже работает.

9
ответ дан 28 November 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: