2010-07-19 55 views
1

我对iphone应用程序开发相当陌生。我正在创建一个具有多个视图的应用程序。最初它从一个认证视图开始,然后根据用户交互加载视图。当我构建并运行应用程序时 - 第一次显示“Default.png”屏幕,然后显示我进行身份验证过程(输入用户标识,密码并执行Web服务)的第一个视图,然后显示凭证后验证它将我带到下一个视图。当我在模拟器的这个状态下关闭应用程序并重新打开它时,我看到了与关闭应用程序相同的状态。但这是我想要的。当我重新启动应用程序时,我应该能够显示“DEfault.png”和屏幕,然后显示我的初始身份验证视图。你能帮我解决这个问题吗?谢谢如何在每次启动应用程序时加载初始视图?

回答

0

这是因为iOS 4应用程序应该支持多任务处理。您可以更改应用程序,使其不发生变化:在Info.plist中,将UIApplicationExitsOnSuspend设置为true(即<key> UIApplicationExitsOnSuspend</key><true/>) - 确保它是一个布尔值而不是字符串。请注意,这可能会使启动速度变慢,因为应用程序必须重新启动。

另一种方式是处理applicationDidEnterBackground:在您的应用程序委托,做两件事情:

  • 重置您的视图层次(你可以做到这一点在下次启动时,做起来早些时候可能有助于释放更多的内存)
  • 秀“为Default.png”在全屏视图 - iOS设备需要您的应用程序的截图它隐藏它使用动画应用回来后
+0

@tc:非常感谢你......这对我有很大的帮助......我编辑了info.plist并且工作正常。我将使用方法2,以防将来的应用程序添加更多功能时,我的加载时间变得更长。 – samdeV 2010-07-19 17:05:20

1

这听起来像你想的问题。要解决的是你的认证会话可能在应用程序暂停时超时,您需要重新登录。 尽管提出的解决方案(将UIApplicationExistsOnSuspend设置为true)会起作用,但我认为您应该考虑采用不同的方法。

Apple建议您尽一切可能使其看起来像手机支持多任务处理。这就是为什么,默认情况下,您的应用将暂停并恢复,而不是退出并重新启动。但就你而言,你可能需要重新登录才能恢复会话。我为您提供了几个备用解决方案:

  1. 缓存凭据(即用户名和密码)并在需要时静默使用它们恢复会话。如果后端支持这一点。
  2. 检测会话何时变为陈旧并引入视图以通知用户会话已过期并要求他们再次登录。如果用户保持应用程序活动超过会话超时,这也将解决问题。

这两种方法都应该提高感知应用程序的性能,并更好地整合到Apple可用性指南中。

+0

@Jeremy:假设我在应用程序进入后台之前缓存我的详细信息。假设我在导航控制器的(x + 5)视图中。现在,当我重新打开应用程序时,无论应用程序进入后台,我都希望显示“Default.png”,然后显示导航控制器的(x + 1)视图。基本上我问如何重新排列视图,并在需要前后删除一些视图。我知道这可能是一个愚蠢的问题..但对此我很新鲜和遗憾。您的帮助将不胜感激....谢谢 – samdeV 2010-07-19 17:19:01

+0

我的解释是,杰里米问*为什么*你想让用户界面按照你的方式行事。如果您在使用应用程序时收到电话,则必须从头开始,这是一种糟糕的用户体验。尽管可能存在有效的市场营销原因(例如,您想要显示启动屏幕),但这不会使其成为一个好用户界面。 – 2010-07-19 17:23:07

+0

基本上用于认证超时。这种方法好吗? - >当应用程序进入后台时:运行一个计时器15分钟,如果过期然后杀死该应用程序。有一个更好的方法吗 ? – samdeV 2010-07-19 17:33:19

相关问题