如何在GUI级别管理启动问题?

时间:2012-08-24 15:29:38

标签: iphone objective-c ios user-interface exit

我正在使用一个在启动时加载一些远程jsons的应用程序。应用程序已编程为对传入数据进行某些测试,以防止无效状态并检测可能的人为错误。但是,我不确定我们应该如何在GUI级别处理这种情况 - 我们最初的想法是显示“哎呀有一个意外的服务器错误。我们正在努力解决这个问题。请稍后再试。”当用户点击“确定”或“退出”按钮时弹出以退出应用程序。

Apple显然不鼓励您从代码中退出应用程序:https://developer.apple.com/library/ios/#qa/qa2008/qa1561.html

有什么好的选择来处理这种情况?

更新:我更新了上面的错误消息,因为它具有误导性。

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。除非可以建立与服务器的连接,否则我的应用程序无用。

有两种解决方法:

  1. 占位符文本,这可以保持位置,直到你可以获得你的json数组,或至少允许后退来弹出警报。

  2. 加载一个禁用所有交互的视图,并在消息框中显示“正在连接...”

  3. 基本上我已经采用了第一个响应故事板框架并禁用了用户可以触摸的所有内容。我只是允许静态交互,比如按一下按钮就可以到达屏幕。

    尽管如此,不要过分夸大自己。如果您根本没有任何连接,那么用户的所有应用程序都无法正常运行。我认为在这种状态下,从GUI的角度来看,它主要是关于损害控制和保护用户体验。

答案 1 :(得分:1)

在创业时优雅很难。我建议您在应用程序准备好运行时以模态方式呈现UI。我问及回答this SO question,它显示了一种干净的UI方式,包括很好的过渡效果。

至于退出:你的应用程序不应该自行终止(版权所有Arnold Schwartzenegger,大约2003年)。当无法完成必须以模态方式完成的事情时,正确的应用程序行为是提醒用户并提供重试选项。如果用户不想重试,手机上会有一个硬件主页按钮。