大家好
我是一名新手 ios 程序员,当我必须切换我的应用程序页面时,我面临很多疑问。
术语“页面”是指用一些小部件(按钮、文本框、表格...)填充整个屏幕的 UIView
据我所知,我应该使用 UIViewController 来管理这些页面中的每一个 因为每个页面都应该是一个屏幕的内容。
我的应用程序以带有许多按钮的 ViewScroller 开始,当用户单击其中一个按钮时,它会打开一个新页面。
第一页是连接到Window的RootController的UIView。
到目前为止,为了打开新页面,我向 RootController 添加了一个子 Controller ,并将其视为 RootController View 的 subview :
RicLocaliController = [[RicercaLocaliViewController alloc] initWithNibName:@"RicercaLocaliViewController" bundle:nil];
[self addChildViewController:RicLocaliController];
[RicLocaliController didMoveToParentViewController:self];
[self.view addSubview:RicLocaliController.view];
RicLocaliController.view.frame = self.view.bounds;
当用户单击“后退”按钮时,我会删除子 Controller 和 subview 。
沿着这条路走下去,我会得到一个动态的 Controller 树及其 View 。
到目前为止,我还没有遇到任何问题,我的应用程序可以上升到树中的第三层并返回。当方向改变时,每个页面都会正确运行。
但我担心为每个子页面添加一个子 Controller 和一个 subview 可能不是正确的做法。
我担心如果我在方向改变时嵌套很多页面,应用程序可能会响应缓慢,因为 super View 也会做一些事情来管理这个事件。
所以我想知道我正在做的事情是否完全没有意义,我是否应该使用导航 Controller 或其他一些方式来管理我的页面更改。
不幸的是,我的老板没有给我足够的时间来研究这个主题,所以我想得到一个建议,以遵循最好的解决方案,可能使用框架提供的最标准和不太复杂的组件,而不是最新的功能。
我阅读了很多关于这个主题的网页,但在我看来,有很多方法可以管理页面之间的导航,这让我感到困惑。
我为我的糟糕英语道歉,但我很累,英语不是我的第一语言。
最佳答案
你必须做一些学习。否则以后您将花费更多时间来解决所有问题……但是,这里有一些提示。
使用嵌套的 ViewController 会导致各种麻烦,所以如果你时间不够,请跳过它。
将每个“页面”视为一个 ViewController。 ViewController 有一个名为 View 的属性,但它实际上只是整个 View 层次结构的顶层 View 。 View 是任何视觉对象的基类,如标签、按钮等。所有 View 都可以有 subview ,因此您可以在标签下添加图像等,如果您愿意,可以做一些非常奇怪的事情。我这么说只是为了让您在如何使用 View 方面解放思想。
现在,ViewController 应该将代码保存到一个 View 层次结构中。该 View 层次结构仅适用于该 View Controller 。
当用户想要导航到另一个页面时,您有几种选择:
NavigationViewController - 当用户想要深入研究数据时应该使用它,例如打开列表中某个项目的详细 View 等。NavigationViewController 为您提供后退按钮、适当动画等方面的帮助。您“弹出”一个viewcontroller 返回一级。如果用户点击后退按钮,这是自动的。
TabBarViewController - 如果您想要在屏幕底部显示标签栏,请使用它。每个选项卡都连接到一个 ViewController,它有自己的 View 层次结构。
PushModal - 如果您在 ViewController 中并且只需要从用户那里获取一些数据,这不是应用程序正常导航的一部分,您可以模态地推送一个新的 ViewController。这是您与内置于 ViewController 的 iOS 交互的方式。这也是从 View Controller 获取值的好方法。
给你。去了解更多。 :)
关于iphone - ios编程中切换UIViews的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100457/