我正在应用中实现安全密码功能。部分解决方案基于可在GitHub上找到的PTPasscodeViewController示例代码。我遇到的问题是,当应用程序首次启动并输入PIN时,UI不会在每个框中用圆圈更新。如果输入的PIN的4位数字不正确,则我的信息不会显示。这就好像runloop没有被执行或者其他东西。如果我输入正确的PIN,应用程序将按预期解锁。功能有效,但UI未更新。
一旦应用程序解锁,如果我进入设置(在应用程序中)并更改密码,则点显示正常,如果在PIN确认期间第二个PIN与第一个PIN不匹配,则UI也会正确更新。
在此应用中启用了后台多任务处理。在iOS 4.2.1上,当应用程序再次变为活动状态时,将使用与首次启动应用程序时相同的PIN验证逻辑。唯一的区别是它不是真正的第一个,而是从背景中回归。在这种情况下,PIN验证逻辑AND UI正常工作......正在执行相同的代码。正确显示点和任何消息。
但是,在3.1.2上,由于不支持后台多任务处理,因此应用程序始终从头开始。因此,每次启动应用程序时,功能都有效,但UI无法正常更新。
我必须对这里的某些事情有一个基本的误解,但不确定我没有得到什么。有人能指出我正确的方向吗?
答案 0 :(得分:0)
我自己解决了这个问题,这是因为缺乏对applicationDidBecomeActive在applicationDidFinishLaunchingWithOptions之后触发的事实的理解。基本上,当第一次推出应用程序时,显示PIN验证屏幕的代码连续两次执行。从applicationDidFinishLaunchingWithOptions中删除PIN验证启动并仅在applicationDidBecomeActive中调用它修复它。