2017-02-21 21 views
0

Я создаю свое первое «настоящее» приложение для iOS и хочу убедиться, что я иду по разумному пути.Соответствующее использование UINavigationController?

Опираясь на свою сущность, приложение предоставит три различных способа визуализации набора данных. Не считая возможных вариантов модального подтверждения, в настоящее время я предполагаю, что мне понадобятся 6 UIView (или их подклассы). Первые три предоставляют уникальный способ визуализации данных. Четвертым будет представление таблицы, чтобы выбрать, какой набор данных должен быть просмотрен. Последние два будут образовывать иерархию родителей/детей и будут использоваться для отображения/редактирования пользовательских настроек для настройки визуализации --- один для отображения списка наборов данных, а другой для отображения деталей одного выбранного набора данных.

My начальный план HMI предназначен для того, чтобы пользователь мог прокручивать влево/вправо между видами или выбирать вид из сегментированного элемента управления в правой позиции на панели навигации. Пользователь может получить доступ к представлению предпочтений через значок шестеренки в левом положении навигационной панели (который изменится на «назад», когда отображаются настройки). Позиция заголовка будет содержать кнопку, отображающую имя текущего набора данных, и вызовет создание списка наборов данных. Выбор одного из наборов данных делает текущие наборы данных. Прокрутка набора данных или длительное нажатие на него приведет к представлению его деталей.

В панели инструментов также будет количество (4 или 5) элементов для записи/редактирования/сохранения/совместного использования данных в наборе данных. Это не будет видно при просмотре/редактировании настроек или списке наборов данных.

Мой вопрос в том, имеет ли смысл обернуть все это в UINavigationController или если я хочу использовать пользовательский контроллер UINavigationBar и UIToolbar. Похоже, что использование навигационного контроллера упростит код, необходимый для использования навигационных панелей и инструментов. Но мне интересно, может ли смесь иерархических представлений и взглядов, не относящихся к иерархическим (одноранговым?) (Представлениям визуализации данных), вызовет у меня чрезмерные головные боли.

Мысли? Спасибо! майк

p.s. Я думаю, что преимущества использования UINavigationContrtoller победят, но я хотел бы узнать, знает ли кто-нибудь о причине, что это плохой подход.

Редактировать: я добавил следующий рисунок на предложение, что это может помочь прояснить мое видение HMI.

Napkin Storyboard

+0

Может быть полезно добавьте диаграмму, чтобы показать, как это будет выглядеть. Картина стоит тысячи слов, ведь –

+0

Да ... Я думал о добавлении фигуры.Но я пошел «старой школой» на начальную раскадровку моей концепции (карандаш/бумага). У меня нет сканера под рукой, и он отказался от перерисовки его в электронном виде ... но я сделаю это и добавлю его в обсуждение. – MikeMayer67

+0

Используйте свою камеру для iPhone? –

ответ

1

Если вы хотите проведите пальцем влево & прямо между контроллерами зрения, или нажмите на регуляторе страницы, это звучит, как вы должны смотреть на UIPageViewController

https://developer.apple.com/reference/uikit/uipageviewcontroller

Вы реализуете 2 делегат, один для подачи страницы после заданного контроллера просмотра, другой для возврата страницы до ...

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { 

} 

func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { 

} 

Чтобы иметь «круговой» набор страниц, просто верните контроллер просмотра для страницы [0] после контроллера просмотра для последней страницы и верните последнюю страницу, когда перед страницей [0]

+0

Я также рассматривал использование UIPageViewController в качестве опции, но не был уверен, могу ли я создать «круговой "набор" страниц ". 1-> 2-> 3-> 1-> 2-> 3 -> .... Примеры, похоже, не показывали это как вариант. Я снова посмотрю. Спасибо за предложение. – MikeMayer67

+2

«Круговые» страницы без проблем - см. Обновленный ответ –

+1

duh ... так очевидно, я никогда не думал попробовать. (вытирая яйцо с лица) – MikeMayer67