2011-01-13 53 views
0

我在應用程序內實現安全密碼功能。部分解決方案基於可在GitHub上找到的PTPasscodeViewController示例代碼。我遇到的問題是應用程序首次啓動並輸入PIN時,UI未在每個框中更新爲圓形。如果輸入的PIN的4位數字不正確,我的信息不會顯示。就好像runloop沒有被執行或者什麼。如果我輸入正確的PIN碼,則應用程序按預期解鎖。該功能可用,但用戶界面不會更新。奇怪的iPhone應用程序啓動問題

如果我進入設置(在應用程序中)並更改密碼,則應用程序解鎖後,點顯示得很好,如果在PIN確認期間第二個PIN不匹配,則第一個UI也會正確更新。

在此應用程序中啓用背景多任務處理。在iOS 4.2.1上,當應用程序再次變爲活動狀態時,將使用與應用程序第一次啓動時相同的PIN驗證邏輯。唯一的區別是,它不是真正的第一個,但是從背景中返回。在這種情況下,PIN驗證邏輯和UI工作正常......相同的代碼正在執行。點和任何消息都正確顯示。

但是,在3.1.2上,由於不支持後臺多任務處理,因此應用程序始終從頭開始啓動。所以每次啓動應用程序時,功能都能正常工作,但用戶界面無法正確更新。

我必須對這裏的某些東西有一個基本的誤解,但不知道我不明白它是什麼。任何人都可以將我指向正確的方向嗎?

回答

0

我自己解決了這個問題,這是由於缺乏對applicationDidBecomeActive在applicationDidFinishLaunchingWithOptions之後觸發的事實的理解。基本上,第一次開發應用程序時,顯示PIN驗證屏幕的代碼正在連續執行兩次。從applicationDidFinishLaunchingWithOptions中刪除PIN驗證啓動並僅在applicationDidBecomeActive中調用它才能修復它。