私はiPhone用のXcode 4.3ターゲットiOS5でこれに取り組んでいます。
シンプルなボタン操作を使用してビュー A からセグエされたビュー B があります。ビュー B にはテキスト フィールドがあり、このテキスト フィールドの入力を検証する必要があります。検証ルールは単純です。テキスト フィールドが空の場合、textFieldShouldEndEditing は NO を返します。コードは次のとおりです。
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
if (![textField.text length]) {
return NO;
}
return YES;
}
これはうまくいきます。ただし、何も入力せずに「戻る」ボタンを押すと (ビュー コントローラーがポップされます)、ビュー A に戻り、ビュー A でもう一度ボタンを押してビュー B に移動すると、ビュー B は完全に無効になり、私はテキストフィールドでは何も編集できません。これは、検証が実装されていないか、常に YES を返す場合には当てはまりません。私も何かを入力してみましたが、textFieldShouldEndEditing は常に NO を返します。
コードをトレースすると、コントローラーがポップした場合に textFieldShouldEndEditing も起動されることがわかります。問題は、textFieldShouldEndEditing を YES または NO に設定する Thins と関係があると思いますが、完全に混乱しました。
助けてください...