IPhone开发:如何构建自定义视图层次结构?

时间:2012-12-18 21:27:40

标签: iphone objective-c ios uinavigationcontroller uikit

我是iOS和iOS开发的新手,我需要为我完成一项相当复杂的任务。我正在处理的应用程序有一个主视图,用户必须能够通过单击三个不同的按钮移动到三个不同的视图。这些视图将有自己的子视图层次结构,但这不是我现在的目标。现在,我正在努力完成这个子任务。我已经阅读了大部分关于iPhone开发的基本教程,并了解到类UINavigationController负责遍历视图层次结构。据我在教程中看到,UINavigationController提供了一个导航栏,但这提供了一个仅转换到单个视图的过程。我的第一个问题是如何构建自定义导航系统,我是否应该进行子类化并以某种方式修改UINavigationController或者是另一种可能的方法?这可能是一个非常简单的问题,但有大量的材料只会让我更加困惑。

5 个答案:

答案 0 :(得分:3)

首先,不要子类UINavigationController。 Apple说没有,而且确实没有充分理由这样做。

在尝试创建此应用之前,您需要完成更多教程。我强烈推荐Ray Wenderlich的网站,其中包含许多免费教程以及他提供的“iOS by Example”系列。 (见http://www.raywenderlich.com/

刚开始学习他的一些免费教程,几乎所有教程都展示了如何做你正在寻找的东西。

祝你好运!

修改

“垂直标签”不是iOS中的本机组件。但是,似乎有一些第三方回购可能会成功。我个人没有使用它,但似乎在其他SO帖子上推荐(见iOS vertical tab bar),看看这是否有帮助:

https://github.com/futuresimple/FSVerticalTabBarController

答案 1 :(得分:0)

我不会继承UINavigationController

由于您不熟悉iOS开发,我建议您使用故事板来完成流程。使用UINavigationControllerUIButtons和其他基本元素可以相当轻松地实现这一目标。

您必须构建iOS 5及更高版本的应用程序才能使用故事板。

答案 2 :(得分:0)

看看UITabBarController

标签栏管理一组viewControllers。它可能比UINavigationController更接近您的想法,并且更直接地实现。每个标签栏项目可以是具有自己的层次结构的NavController,也可以是单个viewController。

答案 3 :(得分:0)

根据您的需要,您可以使用包含创建自己的导航层次结构;这是在iOS 5中引入的。如果你这样做,还有更多的工作要做。

我最近用它来做一些自定义用户界面。在一种情况下,我需要使用UI页面视图控制器进行包含。

如果有的话,绘制一个图表来表示首先需要构建的控制器视图层次结构。然后决定是否需要沿着这条路走下去。

以下是Apple文档的链接。

Apple documentation on creating custom container view controllers

还有来自WWDC 2011的视频。

答案 4 :(得分:0)

感谢所有分享知识的人。我想我已经想出了如何创建一个简单的视图层次结构,我现在正在应用它。我使用UINavigationController并在我从.xib文件创建的视图控制器上调用它的push-pop方法。顺便说一句,http://www.simplecode.me/2011/09/04/an-introduction-to-uinavigationcontroller/的教程也非常有用,以防其他新手像我一样寻求构建视图层次结构的方法。