ロックオプションが含まれているアプリを使用しています。アプリはパスコード画面から始まります。正しいコードを入力すると、次の画面に移動します。アプリを長時間使用しないと、スリープモードになります。ユーザーが希望する場合今すぐアプリを実行すると、パスコード画面が表示され、ユーザーはコードを再入力する必要があります。可能ですか?これに関するチュートリアルはありますか?それを行った場合は、関連するコードを投稿してください。よろしくお願いします。
4 に答える
はい、もちろん可能です。applicationDidBecomeActive
アプリケーションデリゲートで呼び出されたメソッドで画面を開く必要があります。このメソッドは、アプリケーションがバックグラウンドから開かれるたびに呼び出されます。
したがって、ユーザーがすでに実行中のアプリを起動するたびに、このメソッドが呼び出され、ここから最初にパスワード画面を表示し、その後、それぞれの画面を表示できます。
You can detect when your app goes to the background using the UIApplicationDidEnterBackgroundNotification
. When it does, record the date and time. When the user opens the app back up, you will receive UIApplicationWillEnterForegroundNotification
. When you receive that, compare the recorded date and time with the current date and time. If that's too old, display the passcode screen.
そこにあるアプリデリゲートクラスにメソッドapplicationDidEnterForeground
をチェックインし、applicationDidEnterBackground
そこでコーディングを行うことができます
私は同じタイプのアプリを開発し、これを実装しました。このために、このような1つのクラスを作成しました。
@interface CommonUIClass:NSObject
+(void)setCurrentViewController:(id)controller;
+(void)openPassWordProtectedScreen;
@end
と
@implementation CommonUIClass
static id currentViewControllerObj;
+(void)setCurrentViewController:(id)controller{
currentViewControllerObj = controller;
}
+(void)openPassWordProtectedScreen{
PROTECTED_CONTROLLER *view = [[PROTECTED_CONTROLLER alloc]init];
if ([currentViewControllerObj respondsToSelector:@selector(presentModalViewController:animated:)]) {
[currentViewControllerObj presentModalViewController:patternLock animated:NO];
}
}
@end
このクラスをすべてのViewControllerにインポートし、このコードを
-(void)viewWillApear{
[CommonUIClass setCurrentViewController:self];
[super viewWillApear];
}
そして、アプリケーションがバックグラウンドで実行される場合
-(void)applicationWillResignActive:(UIApplication *)application{
[CommonUIClass openPassWordProtectedScreen];
}
ありがとう..