我正在使用一个包含锁定选项的应用程序。我的应用程序从密码屏幕开始。如果我输入正确的代码,那么它将导航到下一个屏幕。如果我长时间不使用该应用程序,它将进入睡眠模式。当用户想要现在运行应用程序,应该会出现密码屏幕,并且用户必须再次输入密码。这可能吗?是否有任何教程?如果您已经完成,请不要介意发布相关代码。提前致谢。
问问题
591 次
4 回答
5
是的,当然这是可能的。applicationDidBecomeActive
您必须在 Application Delegate 中调用的方法中打开屏幕。每次从后台打开应用程序时都会调用此方法。
因此,每当用户启动已经运行的应用程序时,都会调用此方法,然后您可以首先显示密码屏幕,然后再显示相应的屏幕。
于 2013-01-29T06:23:22.987 回答
1
在那里检查应用程序委托类的方法applicationDidEnterForeground
,applicationDidEnterBackground
并且可以在那里进行编码
于 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 回答