适当使用UINavigationController?

时间:2017-02-21 13:58:03

标签: ios uinavigationcontroller uinavigationbar

我正在构建我的第一个"真实" iOS应用程序,并希望确保我走上理智的道路。

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

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

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

我的问题是,在UINavigationController中包装所有这些是否有意义,或者我是否想要使用自定义控制器,UINavigationBar和UIToolbar。似乎使用导航控制器将简化使用导航和工具栏所需的代码。但是,我想知道层次结构视图和非heirarchal(同行?)视图(数据可视化视图)的混合是否会让我感到头疼。

思考? 谢谢! 麦克

P.S。我认为使用UINavigationContrtoller的好处将会胜出,但我想知道是否有人知道这是一个不好的方法。

编辑:我根据建议添加了下图,这可能有助于阐明我对HMI的看法。

Napkin Storyboard

1 个答案:

答案 0 :(得分: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]之前返回最后一页