根据时间更改uiNavigationController

时间:2012-01-30 11:32:55

标签: ios time uinavigationcontroller

iPhone应用程序,ios 4+。 创建一个包含50多页信息的应用程序,我想根据当前使用GMT的时间进行更改 - 所以如果它在洛杉矶的早上5点,并且您访问该应用程序,我希望它根据GMT时间显示信息而不是当地时间。

我在考虑使用单一视图并从数据源(也许是web服务?)加载数据,并在左上角和右上角都有一个按钮,允许用户在其他信息页面中来回导航。

正常的uiview是否足以满足这个需要或更好地适应来回选择的uinavigationcontroller?

此外,存储50多页信息(主要是文本,一些照片和谷歌地图坐标),这个信息不会有太大变化,所以我不确定它是否应该通过应用程序存储在本地或加载来自网络。人们通常会避免在应用程序中本地存储信息,还是那么好?

1 个答案:

答案 0 :(得分:1)

[NSDate date]总是以GMT返回时间(本地时间是NSDateFormatter的函数,而不是日期对象本身)因此基于GMT的功能应该不是问题。如果您需要以GMT格式显示日期,请记住在打印日期之前设置NSDateFormatter的区域设置,否则它将在当地时间打印。

单一视图方法可能有效,可能在启用了分页的UIScrollView内部,这样用户可以来回刷卡而不必按下按钮? Apple有一个代码示例,用于构建分页滚动视图,在滚动内容时动态加载和卸载内容页面以减少内存。

UINavigationController也可以工作,但请记住UINavigationController像堆栈页面一样构建,并将底层视图控制器保留在内存中,这样如果你不小心设计你的内存,可能会占用大量内存。视图控制器(最好是让轻量级视图控制器本身不保留任何数据,这样当卸载视图时它们几乎不会占用任何内存)。

或者,如果您不介意仅针对iOS5,您可以使用iBooks风格的UIPageViewController,让用户可以像书本一样浏览内容页面。

至于存储您的数据,听起来最好的方法是将其嵌入到应用程序中。添加Web连接会给项目带来显着的技术复杂性,因此,如果内容需要经常更改(这种情况经常发生,以至于在内容更改时发布新的应用商店更新很不方便),这真的是值得做的。