2017-02-21 65 views
0

我正在构建我的第一个“真正的”iOS应用程序,并希望确保我正在走下正常的道路。适当使用UINavigationController?

蒸馏它的本质,应用程序将提供三种不同的方式来可视化一组数据。不计算任何可能的模态确认视图,我目前正在设想我将需要6个UIViews(或其子类)。前三个提供了一种独特的数据可视化方式。第四个将是一个表格视图来选择要查看的数据集。最后两个将形成一个父/子层次结构,并将用于显示/编辑用户自定义可视化的首选项---一个显示数据集列表,另一个显示单个选定数据集的详细信息。

我的初始 HMI的计划是让用户能够在视图之间左右扫描或从导航栏中正确位置的分段控件中选择视图。用户可以通过导航栏左侧的齿轮图标访问偏好视图(当显示首选项时,该图标将变为“后退”)。标题位置将包含一个显示当前数据集名称的按钮,并将触发调出数据集列表。选择其中一个数据集可生成当前数据集。滑动数据集或长按即可显示其详细信息视图。

工具栏中还会有一些(4或5个)项目用于记录/编辑/保存/共享数据集中的数据。这在查看/编辑首选项或数据集列表时不可见。

我的问题是在UINavigationController中包装所有这些是否合理,或者是否需要使用自定义控制器,UINavigationBar和UIToolbar。看来使用导航控制器将简化使用导航和工具栏所需的代码。但是,我想知道分层视图和非平行视图(数据可视化视图)的混合是否会引起我不必要的头痛。

想法? 谢谢! mike

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

......如此明显,我从来没有想过要尝试它。 (抹蛋脸) – MikeMayer67