0

ココアタッチ初心者です。現在、カスタムビューを提供するために UIViewController をサブクラス化しようとしています。NSUserDefaults を使用して UITextField (passcodeField) の内容を保存するつもりなので、UITextField がその値を変更するたびに通知を受け取る必要があります。

そのためには、View Controllerを追加してUITextFieldTextDidChangeNotification通知のオブザーバーにする必要があることをどこかで読みました。ただし、いつそれを行うかはわかりません。いくつかのオプションを検討しました。

  1. -loadViewメソッドで。ただし、XIB を使用してビューを読み込んでいるので、このメソッドを台無しにするべきではなく、そのままにしておくべきだと思います。(ところで、私はこの点で正しいですか?)

  2. -viewWillAppearメソッドで。ただし、このメソッドは複数回呼び出される可能性があります。これは、ビューが破棄されたり再作成されたりせずに画面から出たり入ったりする可能性があるためです。(私は正しいですか?)これはプログラムに害を及ぼすことはありませんが、正しい方法のようには見えません。

  3. UIViewController の初期化子。そこに通知を追加したい場合は、UITextField を参照する必要があります。これを行うことで、実際にビューが必要になる前にビューが作成されます。また、システムのメモリが不足すると、オフスクリーンビューが破壊される可能性があることをどこかで読んだと思います。したがって、そのようなことが起こった場合、通知を失う可能性がありますよね?

だから私は今完全に混乱しています。どこに置くべきかアドバイスをいただけませんか?本当にありがとう!

4

1 に答える 1

0

ViewController の - (void)viewDidLoad メソッドに入れます [super viewDidLoad]; を呼び出すことを忘れないでください。実装の開始時に。

于 2012-10-20T03:16:58.003 に答える