【问题标题】:How to manage startup problems at the GUI level?如何在 GUI 级别管理启动问题?
【发布时间】:2012-08-24 15:29:37
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    有两种解决方法:

    1. 占位符文本,这可以保持位置,直到您可以获取 json 数组,或者至少允许弹出警报的背景。

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

    基本上,我采用了第一个响应故事板框架并禁用了用户可以触摸的所有内容。我只允许静态交互,比如按下按钮进入关于屏幕。

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

    【讨论】:

    • 我应该澄清一下...我上面写的错误消息有点不对劲。我要防范的那种故障是应用程序的启动信息中的错误——在某种程度上是下载和检查的。我想显示一条通用消息,建议玩家稍后再试。这将给应用所有者一些时间来修复最终的人为错误。
    • 哦,好吧-我认为我所说的一些可以挽救。我认为最好的选择是保留您的弹出框。但不是 OK-EXIT 作为选项,而是重试和退出 - 这样用户至少可以坐在那里重试(此时你应该抛出一个微调框)或退出并稍后再试。请记住,这是为最坏的情况设计的
    【解决方案2】:

    在启动时要优雅是很难的。我建议在您的应用程序准备好运行时以模态方式呈现 UI。我询问并回答了this SO question,它展示了一种简洁的 UI 制作方式,包括漂亮的过渡效果。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      相关资源
      最近更新 更多