1

タイトルにあるように、私はiOS5機能のストーリーボードを使用しています。テキストフィールドがあり、タップするとモーダルビュー(ピッカー付き)が表示されます。このアクションはセグエを使用してトリガーできるのだろうか?

ボタンまたはセルがある場合は、Ctrlキーを押しながらドラッグして、表示するコントローラーを表示します。テキストフィールドでも同じことをしましたが、結果は表示されません。押すだけでキーボードだけが飛び出します。モーダルビューは表示されません。私は何をすべきか?

4

2 に答える 2

7

あなたの質問にはいくつかの考えがあります、私はそれらが役立つことを願っています:

  • viewController採用UITextFieldDelegateする場合は、オプションのデリゲートメソッドを実装しtextFieldDidBeginEditing:、がファーストレスポンダーになったときに通知を受け取り、モーダルビューコントローラー( UITextFieldDelegateプロトコルリファレンスtextField)を提示するなど、やりたいことを実行できます。ただし、ファーストレスポンダーになり、キーボードが飛び出すと同時に、モーダルビューも飛び出します。これは、あまりユーザーフレンドリーではありません。textField

  • ユーザーが選択できる選択肢が限られている場合、なぜ?を使用するのtextFieldですか?

  • もう1つの方法は、実装するtextFieldShouldBeginEditing:ことです(ここでも、採用する必要がありますUITextFieldDelegate)。Appleによると、

ユーザーが通常は編集セッションを開始するアクションを実行すると、テキストフィールドは最初にこのメソッドを呼び出して、編集を実際に続行する必要があるかどうかを確認します。ほとんどの場合、このメソッドからYESを返すだけで、編集を続行できます。

キーボードがreturn NOポップしないようにし、代わりにモーダルビューコントローラーをポップします。これを行うには、最初に呼び出しpresentViewController:animated:completion:てからNO(UIViewControllerクラスリファレンス)を返します。これはテストしていませんが、機能するはずです。

  • 私は100%確信していません。segueストーリーボードのsが--thinkof(私は間違っているかもしれません)とUIControlEvent同等で呼び出されるとどこかで聞いたと思いUIControlEventTouchUpInsideますUIButtonが、これが本当の場合、UITextFieldファーストレスポンダーになると、それはコントロールイベントではないため、機能しsegueません。
于 2012-05-10T17:28:47.170 に答える
0

Weeel、textFieldShouldBeginEditing:アプローチはios8でうまく機能します

ただし、iOS7では一貫して機能しません

textfield.enabled = NOの設定を終了し、uitextfieldを透明なuibuttonでオーバーレイして、VCプレゼンテーションをティガーしました

于 2014-12-24T16:13:52.257 に答える