我正在学习iOS开发的基础知识,我想创建一个连接到Web服务的简单应用程序。我在Web应用程序方面有很多经验,所以我对应用程序需要发送/接收的请求等感到满意。我不确定的部分是服务的大图片架构支持移动应用程序的样子。
当我的应用程序运行时,我有一个主要要求:用户必须在Web服务中进行身份验证。 Web服务可以发送回令牌,应用程序可以将此用于所有后续请求。我希望用户能够登录一次,并让应用程序保持登录状态(即令牌对该设备仍然有效),除非他们退出。
在用户登录应用程序之前,应该只是一个登录屏幕。如果他们退出,也一样。否则,他们根本不需要看到登录屏幕。
所以我的问题是,构建这个的正确方法是什么?
在AppDelegate
,我是否要制作LoginViewController
并将其设为rootViewController
?然后,如果用户已登录,请按下应用程序其余部分的主视图?
或者我是否要初始化应用程序的主要部分(例如,其中包含少量视图的UITabBarController
),并检查令牌,然后在没有令牌的情况下显示模态登录屏幕可用?
我不清楚的是rootViewController
对于这样的应用程序应该是什么,以及应用程序应该如何跟踪用户是否已登录,以及确定应用程序显示的屏幕打开了。
如果有人能够给我一个关于如何构建这样一个应用程序的高级概述,我真的很感激。
谢谢!
答案 0 :(得分:1)
实际上没有正确的方法,流程可能适合应用程序。如果我有一些UI或数据将在用户未登录时显示,那么我将使用它作为初始rootViewController并使用模态登录对话框强制用户登录。另一方面,如果在用户登录之前我没有显示任何内容,那么如果用户当前没有登录,我会将登录视图控制器设置为初始rootViewController。
为了跟踪正在登录的用户,您应该利用NSUserDefaults来持久保存身份验证令牌。然后在应用程序中:didFinishLaunchingWithOptions:调用你的app委托在NSUserDefaults中寻找这个标记(并可能用服务器验证它),然后根据需要设置rootViewController。