2012-02-17 76 views
1

我有基于导航的应用程序与第一个RootViewController。iPhone - 插入密码检查

我想用锁屏等密码来保护它。 我已经有密码检查的代码。

但我不知道该怎么

1)RootViewController的前插入我CheckPasswordView第一。

2)每次我的应用程序从暂停中重新打开时,都需要输入密码。

更新:

- (void)applicationDidBecomeActive:(UIApplication *)application { 
    /* 
    Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 
    */ 

    CheckPasswordViewController *vc = [[CheckPasswordViewController alloc] 
             initWithNibName:@"CheckPasswordViewController" bundle:nil]; 
    vc.title = @"Enter password";  

    [self.navigationController pushViewController:vc animated:YES];  

    [vc release]; 
} 

回答

2

您需要使用UIApplicationDelegate'sapplicationDidBecomeActive消息。在该代理(功能)中,您可以将代码设置为使您的CheckPasswordView处于活动状态,并在恢复应用程序之前询问用户密码。从文档:

调用此方法让您的应用程序知道它从 从非活动状态移动到活动状态。这可能是因为您的应用程序 是由用户或系统启动的。如果用户选择忽略将 应用程序临时发送到非活动状态的中断 (例如传入电话或SMS消息),则应用程序还可以将 返回到活动状态。

在这个委托中还有其他方法可以看看实现你需要的东西。

+1

谢谢!有用。我在applicationDidBecomeActive消息中显示我的PasswordCheckView。正确输入密码后,我将传递给主程序。但是,如果我在没有输入代码的情况下多次重新打开我的应用程序,我发现我要提供多次输入密码。 – Metaller 2012-02-17 15:32:05

+0

我在主要问题中添加了代码。 – Metaller 2012-02-17 15:35:41

+0

@Metaller:很高兴它的工作! – 2012-02-17 15:36:58

1

我看到你正在推视图控制器到位。这就是为什么它被多次显示。如果你想防止这种情况,模态地呈现视图控制器。

+0

你能告诉我区别吗? – Metaller 2012-02-20 09:35:33

+0

没关系,我明白了。我只是用[self.navigationController presentModalViewController:checkPasswordView animated:YES]打开我的视图;非常感谢! – Metaller 2012-02-20 15:52:58