我不希望我的应用程序一启动就要求登录。相反,我想提示用户“根据需要”登录。因此,例如,如果用户与需要他登录的应用程序的一部分进行交互,那么只有那时才会出现登录提示。
我有一些问题:
1) 以前有没有人做过这种“懒惰”的登录,如果有的话,你的经历是什么?管理起来很麻烦吗?这对用户来说是一种混乱的体验吗?
2)实现这一点的最佳方法是什么?
我有一个 LoginViewController 提示用户登录。我想在当时可见的任何视图控制器的视图之上以模态方式显示此视图控制器。
我还希望其他各种视图控制器对 LoginViewController 一无所知,以最大程度地减少耦合。
理想情况下,我会有一些 LoginManager 单例来管理与登录有关的任何事情。
然后例如,如果某个随机视图控制器 MyCoolViewController 需要对某个功能进行用户身份验证,例如按下按钮,它可以调用:
- (void)buttonPressed:(id)sender {
// If the user isn't logged in, show the login modal view on top of this VC
if (![[LoginManager sharedManager] requireLoginWithViewController:self]) {
return;
}
// Code that is protected by login
}
但是我需要一种方法来知道登录是否成功。这可以通过委托或回调来解决,但意味着每个视图控制器都知道我想避免的 LoginController 的一些信息。
另一种方法是创建 UIViewController 的 ProtectedViewController 子类,我的所有视图控制器都将对其进行子类化,并提供访问受保护功能的功能,并在需要时显示登录控制器。
您如何看待这些方法?还有什么更有意义的吗?我很想听听您关于“懒惰”登录的经验。