アプリが起動したらすぐにログインを要求したくありません。代わりに、「必要に応じて」ログインするようにユーザーに促したいと思います。たとえば、ユーザーがログインを必要とするアプリの一部を操作した場合にのみ、ログイン プロンプトが表示されます。
いくつか質問があります。
1) 以前にこの種の「怠惰な」ログインをしたことがある人はいますか。管理がむずかしい?ユーザーにとって紛らわしい経験ですか?
2) これを実装する最良の方法は何ですか?
ユーザーのログインを求める LoginViewController があります。このView Controllerを、その時点で表示されているView Controllerのビューの上にモーダルに表示したいと思います。
また、結合を最小限に抑えるために、他のさまざまなView Controllerが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 について何かを知っていることを意味します。
もう 1 つの方法は、UIViewController の ProtectedViewController サブクラスを作成して、すべてのビュー コントローラーをサブクラス化し、保護された機能にアクセスするための機能を提供し、必要に応じてログイン コントローラーを提示することです。
これらのアプローチについてどう思いますか?もっと理にかなっているものは他にありますか?「遅延」ログインに関するあなたの経験をぜひお聞かせください。