1

我想制作一个具有 5-6 个不同屏幕和一个数据源来存储用户信息的多视图应用程序。我以前从未制作过多视图应用程序,我对如何开始有一个好主意,但我想听听一些关于“构建”应用程序以正确支持这一点的建议。

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

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

谢谢,一旦我更好地掌握了 Objective-C 和 Xcode,我一定会尽力帮助其他人。

4

3 回答 3

1

如果您是 iPhone/iPad 的新手,我强烈建议您查看CS193P讲座,它们在 iTunes 上也很受欢迎。他们很好地概述了 iPhone 编程以及如何在 Objective-C / Cocoa Touch 中完成工作。它会让任何人朝着正确的方向开始。

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

一些建议,特定于多视图应用程序(几乎每个应用程序都是),我相信其他人可以对此进行扩展......

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

Apple 文档通常是开始处理大多数事情的好地方。先在这里试试。希望这会有所帮助,祝你好运!

于 2011-03-03T01:18:17.507 回答
0

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

然而,我使用的最佳方法是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/" 将参数 @"searchResults" 传递给我们在映射器中定义的 ResultsViewController ("initToView:") 的 init 方法

一切顺利!

于 2011-03-03T01:37:49.330 回答