0

我对 IOS 很陌生,但已经完成了几个简单的应用程序。我读过很多书,这些书帮助我入门,但我缺少一些关于如何最好地构建应用程序的更一般的建议——尤其是关于 UI 的建议。

我知道这是一个非常笼统的问题,所以我会尝试提出一个具体的问题。关于如何构建这个特定应用程序的建议.. 或关于类似主题的好读物的指针将不胜感激。

现在这个特定 iPad 应用程序的 UI 将如下所示:

主屏幕水平分为两部分。上三分之二是一种画布/工作空间下三分之一是带有各种项目的工具箱,可以拖动到工作空间。该工具箱具有不同的视图,其中包含各种类别的项目。可以说:一个视图具有各种几何图形,一个视图具有各种颜色。用户可以选择要在工具箱中显示的类别。最后在屏幕顶部是一个带有单个按钮的工具栏。

我对如何构建我的视图/视图控制器有点困惑。也许我的很多麻烦源于我没有完全理解 Apple 关于如何使用各种 UI 元素的指南——如果是这种情况,请随意说。

这就是我开始的方式。我将构建一个控制主视图的主 ViewController。主视图将包含上部工具栏。对于这个视图,我将添加两个子视图。一个用于工作空间,一个用于工具箱。工具箱视图让我有点困惑。我的想法是使它成为一个选项卡式视图,每个类别的项目都有一个选项卡。但是,据我了解,嵌套视图控制器势必会造成很多麻烦,情况就是如此。这是否意味着使用 tabviewcontroller 只控制屏幕的一部分是违反准则的?组成我自己的“标签栏”并在标签被标签时简单地在子视图之间切换会更好吗?

这是否也意味着,有一个弹出视图,只覆盖屏幕的一部分,导航控制器同样是不好的做法?或者这必须是一个模态视图?一个视图只占屏幕一部分的 tableviewcontroller 怎么样?如果没有有效地嵌套视图控制器,我看不到如何完成这些事情。

我确定我得到了完全颠倒的东西?

最好的问候托马斯

4

1 回答 1

0

嵌套 ViewController 不是问题。事实上,在 iOS 5 中引入了 View Controller Containment 以使这更加容易。但是,在新的收容功能之前,它仍然是可能的。

嵌套两个 ViewController 的最简单方法如下:

SubViewController *theSubView = [[SubViewController alloc] init];
[self.view addSubview:theSubView.view];

然后子视图将由主视图控制器控制,SubViewController并将“嵌套”在主视图控制器中。(此代码将是主 ViewController 的一部分。)

要使用新的(er)视图控制器包含方法,您将创建主视图控制器的SubViewControllera childViewController

WWDC 2011 上有一段很棒的视频,介绍了 View Controller Containment。您需要成为开发人员才能在此处访问它。它被称为“实现 UIViewController 包含”。

我不建议以嵌套格式使用 TabBarController,您可以更轻松地构建自己的视图切换方法,甚至使用UIScrollViewwith pagingEnabled

至于带有NavigationControllers 的弹出视图,这是一种常见的做法。NavigationController创建一个包含其中的弹出窗口以执行诸如访问应用程序设置或从您的调色板配置工具或访问已保存的项目之类的操作,无论您能想象到什么,都没有错。

我希望这能让你有个好的开始。

于 2012-07-06T13:26:58.500 回答