0

我正在学习 iOS 开发的基础知识,我想制作一个连接到 Web 服务的简单应用程序。我在 Web 应用程序方面有很多经验,所以我对应用程序需要发送/接收什么样的请求等感到满意。我不确定的部分是服务的总体架构支持的移动应用程序看起来像。

当我的应用程序运行时,我有一个主要要求:用户必须通过 Web 服务进行身份验证。Web 服务可以发回一个令牌,应用程序可以将其用于所有后续请求。我希望用户能够登录一次,并让应用程序无限期地保持登录状态(即令牌对该设备仍然有效),除非他们注销。

直到用户登录应用程序才真正应该只是一个登录屏幕。如果他们注销,也一样。否则,他们根本不需要看到登录屏幕。

所以我的问题是,构建这个的正确方法是什么?

AppDelegate中,我是否要制作 aLoginViewController并将其设置为rootViewController?那么如果用户已登录,则推送到应用程序其余部分的主视图?

还是我想初始化应用程序的主要部分(例如,UITabBarController其中有几个视图),并检查令牌,然后在没有令牌可用时显示模式登录屏幕?

我不清楚的是这样rootViewController的应用程序应该是什么,以及应用程序应如何跟踪用户是否登录,并确定打开应用程序时要显示的屏幕。

如果有人能给我一个关于如何构建这样一个应用程序的高级概述,我将非常感激。

谢谢!

4

1 回答 1

1

没有真正正确的方法可以做到这一点,任何一种流程都可能适合应用程序。如果我有一些用户未登录时将显示的 UI 或数据,那么我会将其用作初始 rootViewController 并使用模式登录对话框来强制用户登录。另一方面,如果在用户登录之前我什么都没有显示,那么如果用户当前未登录,我会将登录视图控制器设置为初始 rootViewController。

为了跟踪正在登录的用户,您应该利用 NSUserDefaults 来保存身份验证令牌。然后在 application:didFinishLaunchingWithOptions: 调用你的应用程序委托在 NSUserDefaults 中查找这个令牌(并可能使用服务器验证它),然后根据需要设置 rootViewController。

于 2013-04-12T17:52:53.587 回答