我正在使用包含锁定选项的应用程序。我的应用程序以密码屏幕开始。如果我输入正确的代码,则导航到下一个屏幕。如果我长时间不使用该应用程序,它将进入睡眠模式。当用户现在想要运行应用程序,应该出现密码屏幕,用户必须再次输入代码。这可能吗?有没有这方面的教程?如果你已经完成它,请不要介意发布相关代码。谢谢你提前。
答案 0 :(得分:5)
是的,有可能。您必须在Application Delegate中使用名为applicationDidBecomeActive
的方法打开屏幕。每次从后台打开应用程序时都会调用此方法。
因此,每当用户启动已经运行的应用程序时,将调用此方法,然后您可以先显示“密码”屏幕,然后显示相应的屏幕。
答案 1 :(得分:1)
您可以使用UIApplicationDidEnterBackgroundNotification
检测应用何时转到后台。如果是,请记录日期和时间。当用户重新打开应用程序时,您将收到UIApplicationWillEnterForegroundNotification
。收到后,将记录的日期和时间与当前日期和时间进行比较。如果太旧,请显示密码屏幕。
答案 2 :(得分:1)
在那里检查应用委托类,可以使用方法applicationDidEnterForeground
和applicationDidEnterBackground
进行编码
答案 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];
}
谢谢..