0

我正在使用一个包含锁定选项的应用程序。我的应用程序从密码屏幕开始。如果我输入正确的代码,那么它将导航到下一个屏幕。如果我长时间不使用该应用程序,它将进入睡眠模式。当用户想要现在运行应用程序,应该会出现密码屏幕,并且用户必须再次输入密码。这可能吗?是否有任何教程?如果您已经完成,请不要介意发布相关代码。提前致谢。

4

4 回答 4

5

是的,当然这是可能的。applicationDidBecomeActive您必须在 Application Delegate 中调用的方法中打开屏幕。每次从后台打开应用程序时都会调用此方法。

因此,每当用户启动已经运行的应用程序时,都会调用此方法,然后您可以首先显示密码屏幕,然后再显示相应的屏幕。

于 2013-01-29T06:23:22.987 回答
1

在那里检查应用程序委托类的方法applicationDidEnterForegroundapplicationDidEnterBackground并且可以在那里进行编码

于 2013-01-29T06:35:33.070 回答
1

您可以使用UIApplicationDidEnterBackgroundNotification. 当它发生时,记录日期和时间。当用户打开应用程序备份时,您将收到UIApplicationWillEnterForegroundNotification. 收到后,将记录的日期和时间与当前日期和时间进行比较。如果太旧,请显示密码屏幕。

于 2013-01-29T06:24:04.033 回答
0

我开发了相同类型的应用程序,我已经实现了这些东西,为此我做了一个这样的类

@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];

}

谢谢..

于 2013-01-29T06:54:10.917 回答