2011-01-13 18 views
0

私はアプリ内で安全なパスコード機能を実装しています。このソリューションの一部は、GitHubにあるPTPasscodeViewControllerサンプルコードに基づいています。私が抱えている問題は、アプリが最初に起動され、PINが入力されたときです。UIは各ボックスのサークルで更新されていません。入力されたPINの4桁が正しくない場合、私のメッセージは表示されません。ランループが実行されていないかのようです。正しいPINを入力すると、アプリは期待どおりロックが解除されます。機能は動作しますが、UIは更新されません。Strange iPhone App起動問題

設定(アプリ内)に入り、パスワードを変更してもドットが表示され、PINの確認中に2番目のPINが最初のPINと一致しない場合は、UIも正しく更新されます。

バックグラウンドマルチタスクはこのアプリで有効になっています。 iOS 4.2.1では、アプリが再びアクティブになったときに、アプリが最初に起動されたときと同じPIN検証ロジックが使用されます。唯一の違いは、それが本当に最初の行方ではなく、バックグラウンドからの帰還であるということです。この場合、PIN検証ロジックとUIは正しく動作します...同じコードが実行されています。ドットとメッセージが正しく表示されます。

しかし、3.1.2では背景マルチタスクがサポートされていないため、アプリは常にゼロから起動されます。したがって、アプリケーションが起動されるたびに機能は動作しますが、UIは正しく更新されません。

ここで何かの基本的な誤解がありますが、私はそれが何であるのかわかりません。誰かが私を正しい方向に向けることができますか?

答えて

0

私はこの問題を自分で解決しました。これは、applicationDidBecomeActiveがapplicationDidFinishLaunchingWithOptionsの後にも発生するという事実を理解していないことが原因です。基本的にPIN検証画面を表示するコードは、初めてアプリを起動するときに2回連続して実行されていました。 applicationDidFinishLaunchingWithOptionsからのPIN検証起動を削除し、applicationDidBecomeActiveでのみ呼び出すと修正されました。