タイトルにあるように、私はiOS5機能のストーリーボードを使用しています。テキストフィールドがあり、タップするとモーダルビュー(ピッカー付き)が表示されます。このアクションはセグエを使用してトリガーできるのだろうか?
ボタンまたはセルがある場合は、Ctrlキーを押しながらドラッグして、表示するコントローラーを表示します。テキストフィールドでも同じことをしましたが、結果は表示されません。押すだけでキーボードだけが飛び出します。モーダルビューは表示されません。私は何をすべきか?
タイトルにあるように、私はiOS5機能のストーリーボードを使用しています。テキストフィールドがあり、タップするとモーダルビュー(ピッカー付き)が表示されます。このアクションはセグエを使用してトリガーできるのだろうか?
ボタンまたはセルがある場合は、Ctrlキーを押しながらドラッグして、表示するコントローラーを表示します。テキストフィールドでも同じことをしましたが、結果は表示されません。押すだけでキーボードだけが飛び出します。モーダルビューは表示されません。私は何をすべきか?
あなたの質問にはいくつかの考えがあります、私はそれらが役立つことを願っています:
をviewController採用UITextFieldDelegateする場合は、オプションのデリゲートメソッドを実装しtextFieldDidBeginEditing:、がファーストレスポンダーになったときに通知を受け取り、モーダルビューコントローラー( UITextFieldDelegateプロトコルリファレンスtextField)を提示するなど、やりたいことを実行できます。ただし、ファーストレスポンダーになり、キーボードが飛び出すと同時に、モーダルビューも飛び出します。これは、あまりユーザーフレンドリーではありません。textField
ユーザーが選択できる選択肢が限られている場合、なぜ?を使用するのtextFieldですか?
もう1つの方法は、実装するtextFieldShouldBeginEditing:ことです(ここでも、採用する必要がありますUITextFieldDelegate)。Appleによると、
ユーザーが通常は編集セッションを開始するアクションを実行すると、テキストフィールドは最初にこのメソッドを呼び出して、編集を実際に続行する必要があるかどうかを確認します。ほとんどの場合、このメソッドからYESを返すだけで、編集を続行できます。
キーボードがreturn NOポップしないようにし、代わりにモーダルビューコントローラーをポップします。これを行うには、最初に呼び出しpresentViewController:animated:completion:てからNO(UIViewControllerクラスリファレンス)を返します。これはテストしていませんが、機能するはずです。
segueストーリーボードのsが--thinkof(私は間違っているかもしれません)とUIControlEvent同等で呼び出されるとどこかで聞いたと思いUIControlEventTouchUpInsideますUIButtonが、これが本当の場合、UITextFieldファーストレスポンダーになると、それはコントロールイベントではないため、機能しsegueません。Weeel、textFieldShouldBeginEditing:アプローチはios8でうまく機能します
ただし、iOS7では一貫して機能しません
textfield.enabled = NOの設定を終了し、uitextfieldを透明なuibuttonでオーバーレイして、VCプレゼンテーションをティガーしました