UITableView で行が選択され、ナビゲーション コントローラー内でプッシュ セグエがトリガーされたときに、現在編集されているテキスト フィールドからファーストレスポンダーを辞任したいと考えています。これはポップオーバー内で発生しています。
私は2つのことを試しました:
(1)アニメーション中にテキストフィールドがファーストレスポンダーを辞任していることがわかりますが、ビューコントローラーに戻ると、ファーストレスポンダーが再び取得され、キーボードが表示されます。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.view endEditing:YES];
}
(2)これにより、View Controller に戻ったときに編集が復元されなくなりますが、この方法ではアニメーションが壊れます。アニメーションの最後で、最初のビュー コントローラーが黒くなり、少しジャンプします。
編集:これは、キーボードがプッシュ アニメーションよりも速くアニメーション化することに関係しているため、ランドスケープ モードでのみ表示されることに気付きました。キーボードに余裕ができたとき。アニメーションは、ナビゲーション コントローラーでプッシュ アニメーションをアニメーション化している間、ポップオーバーの展開を処理できません。以下のコードを削除し、プッシュして iOS にキーボードを削除させると、キーボードとプッシュのアニメーションがまったく同時に実行され、この問題が回避されます。辞任を強要しながら、どうすれば自分でそれを実現できるのだろうか。
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.view endEditing:YES];
return indexPath;
}
ビューコントローラーを変更するときに、元に戻るときにテキストフィールドのファーストレスポンダーを再度復元せずにファーストレスポンダーを辞任するにはどうすればよいですか?