【问题标题】:Best approach for implementing a pincode for application launch & didEnterForground为应用程序启动和 didEnterForground 实施 pincode 的最佳方法
【发布时间】:2012-12-10 01:23:12
【问题描述】:

我已经构建了一个 pincode 视图控制器,我想在我的应用程序中实现它以保护它免受不需要的手指的影响。

我一直在研究如何最好地实现它,以便它仅在应用程序首次启动时以及在后台返回前台时出现。

appDelegate.m 具有 didFinishLoading 和 applicationWillEnterForeground 但我无法在此处创建视图控制器,因为尚未加载窗口。

我会将它添加到我的视图控制器的 viewDidLoad 方法中,但我使用的是 TabBarController,因此需要为所有任务执行此操作,然后每当用户在它们之间切换时都需要该 pin。

是否有人对我如何实现这一目标有任何建议/代码示例/最佳实践?

非常感谢,詹姆斯

【问题讨论】:

    标签: ios cocoa-touch delegates uikit uitabbarcontroller


    【解决方案1】:

    尝试使用您的 AppDelegate 的 - (void)applicationDidBecomeActive:(UIApplication *)application。我相信你现在有一个窗口。无论如何,即使还没有窗口,也有简单的解决方法。

    【讨论】:

    • 嗨 Demonsten,当我将下面的代码添加到我的 applicationDidBecomeActive 方法 PINAuthViewController *pinController = [[PINAuthViewController alloc] init]; [self.window.rootViewController presentViewController:pinController animated:YES completion:nil]; 时,屏幕变为空白(黑色),我在控制台中得到以下输出:Unbalanced calls to begin/end appearance transitions for <TBMasterViewController: 0x9e88620>. Warning: Attempt to present <PINAuthViewController: 0xaa8f930> on <TBMasterViewController: 0x9e88620> whose view is not in the window hierarchy!
    • 你好詹姆斯。我做了一个简单的示例项目只是为了检查它是否有效。它确实有效。在多种配置中进行了测试。到目前为止,我发现的唯一可能的问题是,您必须检查当前是否没有呈现模态视图控制器。在这种情况下,presentViewController 无效。请检查您的控制器链以及您的控制器需要什么才能正确设置。这种行为可能有一些特定于应用程序的原因。
    • 嗨,Demosten,恐怕我根本无法让它工作。相反,我实现了以下内容: 在 appDelegate.m 中,对于 (void)applicationDidBecomeActive:(UIApplication *)application 等方法,我正在向 NSUserDefaults 写入一个 bool,然后在视图控制器 viewDidLoad/viewWillAppear 方法中对其进行检查。这在应用程序终止时有效,但是当它使用主页按钮暂停然后重新打开时 viewWillAppear 不会被调用。我可以在此处调用的视图控制器中使用任何方法吗?我试过 viewWillAppear&viewDidLoad。谢谢,詹姆斯
    • 在此处查看答案:stackoverflow.com/questions/11812542/…。接受的答案可以帮助你,第二个答案是我的。这是我在我发布的一个应用程序中使用的东西。
    • 感谢 Demosten!在接受的答案中,我根本没有将视图添加到窗口中,IB 正在通过情节提要处理这个 - 所以我不确定这是问题所在。关于您的回答,我有一个 TabBarController 有多个选项卡,每个选项卡都有自己的 VC 类。我想我需要将所有这些添加到代表数组中?另一个问题,UIApplicationDelegate,是否提供了一个标准类?因为我找不到。也许您可以提供一个非常简单的项目,我可以看一下以帮助我了解它?谢谢!詹姆斯
    猜你喜欢
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多