3

セキュリティ上の理由から、アプリを開くたびにユーザーがログインする必要があります。私がやりたいのは、アプリが閉じようとしているときに、アプリを初期ビューにリセットすることです。ビューコントローラから、次のコードを使用できることがわかります。

[[self navigationController] popToRootViewControllerAnimated:NO];

アプリデリゲートから機能するようにそれを適応させる方法がわかりません。

初期ビューでは、viewDidLoadにログインモーダルを表示するように設定しています。これは初めて起動するようで、戻るボタンを使用しているときはアプリでは起動しないようです。したがって、この方法を使用してログイン画面を表示しても安全であると期待しています。

明確にするために、私はアプリデリゲートでこれを行うことを理解しています。ビューをリセットするようにアプリに指示するために使用できる特定のコードを探しています。

4

4 に答える 4

2

これに対する簡単な解決策は、アプリがバックグラウンドで実行されないようにすることです。これにより、ユーザーがアプリを閉じると、アプリが完全にシャットダウンします。

これを行うには、プロジェクトのinfo.plistにアクセスし、[アプリケーションがバックグラウンドで実行されない]をオンにして[はい]をオンにするだけだと思います。

幸運を!お役に立てば幸いです。

于 2012-05-08T19:53:44.943 に答える
1

AppDelegate.m では、次のデリゲート メソッドを利用できます。

-(void)applicationWillResignActive: (UIApplication*)application

ここで他のUIApplicationDelegate方法を調べて、アプリに最適な方法を見つけてください。

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html


編集:

これを実現する 1 つの方法は、デリゲート メソッドを使用し-(void)applicationDidBecomeActive:(UIApplication *)applicationてログイン インターフェイスを表示することです。これは、他の場所ではまだ行われていません。

このメソッドは、ユーザーがアプリを最初から開いたとき、またはバックグラウンドから再開した場合、またはたとえば iOS5 の場合、ユーザーがアプリ内にいて、ドラッグ可能なステータス バーを操作してから再び閉じた場合に、常に呼び出されます。このメソッドはヒットします。ログインを依頼するのに最適な時期だと思います。

ユーザーが元の画面で再開できるようにするかどうかわからないので、アプリがバックグラウンドに入ったときにログアウトするかどうかを決定する必要があります。(アプリケーション デリゲート クラスのリファレンスを再度参照するか、アプリ デリゲート メソッド ファイルを確認してください)

于 2012-05-08T19:16:24.843 に答える
0

で特定のビューを表示するように設定できますAppDelegate

見るapplicationDidBecomeActive:

于 2012-05-08T19:17:41.373 に答える