我是iOS开发的新手,有点迷路。我的问题既涉及一般用户体验,也涉及具体的体系结构建议。
基本上我的应用程序应按以下方式工作:
首先,它从远程服务器请求信息,并通过GPS请求用户位置。当这些事情发生时,应用程序应显示某种带有进度指示器和文本的首次启动视图。第一个问题是:如果用户无法从远程服务器下载信息怎么办?此信息必不可少,没有它,应用程序将无法继续工作。我应该重试下载吗?我应该向用户展示一些MessageBox吗?对于桌面应用程序,我将向用户提供两个选择-重试或退出。退出在iOS应用程序中是不可接受的,因此我应该显示消息框吗?或者我只需要通过此首次启动视图上的文本通知用户有关问题的信息,然后静默重试下载信息,直到成功为止?还是创建按钮“重试”并让用户这样做?
如果设备提供的用户位置和下载成功,则我具有继续操作所需的所有信息。否则,用户必须先选择其国家和城市,然后才能继续。
然后,我有3个具有不同功能的标签。我已经实现了。
所以我的问题是:如何显示首次加载视图及其控制器?我是否应该签入appdelegate初始化方法并将第一加载视图分配为主视图,然后重新分配给普通应用程序UITabbarController(不确定如何执行)?还是我需要将UITabbarController设置为根控制器,并在初始化时在第一个选项卡控制器中检查是否是首次启动,并为首次视图控制器调用诸如presentViewController之类的东西?我想在其他地方实现此检查,appdelegate是个好地方,因为初始化代码并不真正属于第一个选项卡控制器。
我创建了具有多个视图的示例程序,这些程序由UITabbarController或UINavigationController管理,但是我不了解如何自己管理多个视图,而没有帮助我的助手控制器。
最佳答案
我目前正在开发具有类似行为的应用程序。
我使用UINavigationController作为根控制器。之后,我有了一个带有UIActivityIndicatorView的视图控制器。我在ViewWillAppear方法中启动动画,然后在ViewDidAppear方法中调用实现远程调用的方法。
如果 call 成功,我将转到下一个视图。
如果通话失败,我将使用UIAlertView通知用户,然后点击确定重试。