当应用程序在iPhone中进入睡眠模式时,我们可以锁定应用程序吗?

时间:2013-01-29 06:19:41

标签: iphone ios objective-c ios6 locking

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

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

您可以使用UIApplicationDidEnterBackgroundNotification检测应用何时转到后台。如果是,请记录日期和时间。当用户重新打开应用程序时,您将收到UIApplicationWillEnterForegroundNotification。收到后,将记录的日期和时间与当前日期和时间进行比较。如果太旧,请显示密码屏幕。

答案 2 :(得分:1)

在那里检查应用委托类,可以使用方法applicationDidEnterForegroundapplicationDidEnterBackground进行编码

答案 3 :(得分: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];

}

谢谢..