我不希望我的应用程序在启动时就需要登录。相反,我想在“需要”时提示用户登录。例如,如果用户与需要登录的应用程序的一部分进行交互,那么才会出现登录提示。
我有几个问题:
1) 以前有人做过这种“懒惰”的登录吗?如果有,你的经验是什么?管理起来是否麻烦?对用户来说是否很困惑?
2) 如何最好地实现这个功能?
我有一个LoginViewController用于提示用户登录。我想将此视图控制器模态显示在当前可见的任何视图控制器的视图上面。
我还希望其他各种视图控制器对LoginViewController一无所知,以最小化耦合。
理想情况下,我会有一个LoginManager单例,它将管理与登录相关的所有内容。
然后,例如,如果某个随机的视图控制器MyCoolViewController需要用户验证某个功能(例如按下按钮),则可以调用:
但我需要一种方法来知道登录是否成功。可以通过委派或回调来解决,但这意味着视图控制器各自都知道一些关于LoginController的东西,我希望避免这种情况。 另一种方法是创建ProtectedViewController作为UIViewController的子类,所有的视图控制器都将继承该类,并提供访问受保护功能的功能,在需要时呈现登录控制器。
你认为这些方法怎么样?还有什么更合理的方法吗?我很想听听你对“懒惰”登录的经验。
我有几个问题:
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的东西,我希望避免这种情况。 另一种方法是创建ProtectedViewController作为UIViewController的子类,所有的视图控制器都将继承该类,并提供访问受保护功能的功能,在需要时呈现登录控制器。
你认为这些方法怎么样?还有什么更合理的方法吗?我很想听听你对“懒惰”登录的经验。