首款iPhone多视图应用程序 - 一些指导

时间:2011-03-02 23:59:16

标签: iphone objective-c xcode multiview

我想制作一个带有5-6个不同屏幕的多视图应用程序和一个用于存储用户信息的数据源。我之前从未制作过多视图应用程序,而且我对如何开始有了一个很好的想法,但我想听听一些关于“构建”你的应用程序的建议以正确支持它。

一个非常简单的类比可能是关于在网站上制作背景颜色......您可以使用纯色图像或只使用背景颜色样式。两者都完成了工作,但使用样式更容易/更有效。

我只是想确保我从右脚开始。我应该将所有功能保存在一个班级的.m / .h文件中吗?不同屏幕的最佳/有效方式是什么?

谢谢,一旦我对Objective-C和Xcode有了更好的掌握,我肯定会尝试帮助其他人。

3 个答案:

答案 0 :(得分:1)

如果您是iPhone / iPad的新用户,我强烈建议您查看CS193P讲座,它们也是itunes的avaliale。他们很好地概述了iPhone编程以及Objective-C / Cocoa Touch的工作方式。它会让任何人都朝着正确的方向前进。

至于你的具体问题。刚开始编码。在6个月内你会意识到你写的东西是cr * p并且需要重写,但是这样做是唯一能让你意识到你写的东西是cr * p所以......

一些建议,特别针对多视图应用(几乎每个应用都有),我相信其他人可以扩展这个......

  1. 学习(尽可能)编写不同视图和视图控制器之间的交互(使用界面构建器)。例如,twitter应用程序根本不使用Interface Builder。
  2. 如果您使用IB,请不要将所有内容都转储到一个.xib中。学习如何分解它们。应该是每个viewcontroller一个.xib。我从不使用IB UITabBarController或IB UINavigationController,它们只在代码中被初始化和使用。
  3. 绝对学习MVC(模型视图控制器)。

答案 1 :(得分:0)

Apple文档通常是大多数事情的好地方。首先尝试here。希望这有帮助,祝你好运!

答案 2 :(得分:0)

我曾经使用过UINavigationController。我创建它作为单身并静态访问它所以我可以轻松地推送和弹出控制器(这是一个相当不错的教程here)。这非常轻巧,并且有足够的文档可以快速使用它。

然而,我使用的最佳方法是Three20框架的TTNavigator。简而言之,它是一个增强的UINavigator,可以通过调用内部URL将新视图推送到屏幕上:

//(In your app delegate)
//Start up the navigator
TTNavigator* navigator = [TTNavigator navigator];
navigator.persistenceMode = TTNavigatorPersistenceModeTop;

//Map url's to controllers
TTURLMap* map = navigator.URLMap;
[map from:@"*" toViewController:[TTWebController class]];
[map from:@"ac://search" toViewController:[SearchViewController class]];
[map from:@"ac://results/(initToView:)" toViewController:[ResultsViewController class]];

然后导航到控制器:

[[TTNavigator navigator] openURLAction:[[TTURLAction actionWithURLPath:@"ac://results/searchResults/"] applyAnimated:YES]];

同样很酷的是调用@“ac:// results /”我们上面的方式将param @“searchResults”传递给ResultsViewController的init方法(“initToView:”),如我们在映射器

一切顺利!