每次应用启动时如何加载初始视图?

时间:2010-07-19 16:15:11

标签: iphone ios-simulator

我是iphone app开发的新手。我正在创建一个具有多个视图的应用。最初,它以身份验证视图开始,然后根据用户交互加载视图。当我构建并运行应用程序时 - 第一次显示“Default.png”屏幕,然后显示我执行身份验证过程的第一个视图(键入userid,密码并执行Web服务),然后在凭据之后验证它带我到下一个视图。当我在模拟器中以此状态关闭应用程序并再次重新打开时,我看到了我关闭应用程序的状态。但这就是我想要的。当我重新启动应用程序时,我应该能够显示“DEfault.png”和屏幕,然后显示我的初始身份验证视图。你能帮我解决一下吗?感谢

2 个答案:

答案 0 :(得分:1)

听起来您尝试解决的问题是,经过身份验证的会话可能会在应用程序暂停时超时,您需要再次登录。 虽然建议的解决方案(将UIApplicationExistsOnSuspend设置为true)可行,但我认为你应该考虑采用不同的方法。

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

  1. 缓存凭据(即用户名和密码),并在需要时以静默方式使用它们来恢复会话。如果后端支持这个。
  2. 检测会话何时变为陈旧并引入视图以通知用户会话已过期并要求他们再次登录。如果用户使应用程序保持活动超过会话超时,这也可以解决问题。
  3. 这两种方法都应该提高应用程序的感知效果,并更好地集成到Apple可用性指南中。

答案 1 :(得分:0)

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

另一种方法是在你的app委托中处理applicationDidEnterBackground:并做两件事:

  • 重置您的视图层次结构(您可以在下次启动时执行此操作,但提前执行此操作可能有助于释放更多内存)
  • 在全屏视图中显示“Default.png” - iOS隐藏了应用后隐藏的应用截图,用于动画应用程序。