2012-10-07 8 views
6

私は、ビュー間のナビゲーションを含むストーリーボードを持っています。前後に移動することができ、ホーム画面までずっと移動することも可能です。becomeFirstResponderはキーボードを2度目に表示しません(ios 6 +ストーリーボード)

基本的には、次のように動作します。

  • ビュー1は、簡単なメニューを示しています。
  • 入力フィールド2が表示され、キーボードが自動的に表示されます。
  • ビュー3に結果テーブルを示します。このビューでは、1つのステップを戻って(2を表示する)、またはホーム画面に戻ることができます(ビュー1)。

ユーザーがビュー1からビュー2に移動したときに、キーボードとすべてが完全に機能します。ただし、ビュー3からビュー2に戻ったりビュー3から戻ると、キーボードは表示されません。

コードでは、私はviewDidAppearメソッドでbecomeFirstResponderを持っています。もう1つの面白い事実は、becomeFirstResponderを2回目に呼び出すと、最初にYESを返す間にNOを返します。また、このビューに戻ったときに、たとえuserInteractionEnabledであっても、テキストフィールドを選択することはできません。

私は本当にここにこだわっているので、どんな助けも高く評価されています。 私はこの1つに、いくつかの類似した質問を見たが、解決策を見つけていない:

+0

誰もがこれを解決する運を持っていましたか?私は何度も見て、たくさんのことを試しましたが、何も動作しません。キーボードはuitextfieldあたり1回しか表示されません – user353877

答えて

7

は私が問題を追跡することができました私のコードで。他の人にも役に立つかもしれないので、この質問に自分自身で答える。

私の問題は、実際に正しいイベントの順序を取得していないことでした。次のテキストフィールドに移動するボタンがありました。すべてが完了したら、次の画面に移動します。これにより、新しい画面に切り替えるときにbecomeFirstResponderメソッドが呼び出され、解放されませんでした(resignFirstResponder)。

私が与えることができる主なアドバイスは、少なくとも私にとってはうまくいったことですが、becomeFirstResponderをすべて通過し、次の画面に移動する前にリリースされていることを確認してください。

関連する問題