

こんにちは。  
iOSアプリをObjective-cで開発しています。

ポップアップダイアログを表示させ、テキスト入力と、リストから項目を選択できるUIを追加したいです。

UIAlertControllerを使用し、「addTextFieldWithConfigurationHandler」を使って、テキスト入力をさせることはできたのですが、リストを追加する方法がわかりません。

リストは、pickerでもTableViewでもどちらでも構わないのですが・・・。

どなたか、参考になる情報、ヒントなどをいただけないでしょうか・・・。


CC BY-SA 3.0
2016-03-18T08:46:03.670
23253
2016-04-17T19:24:15.760
10509
question
ios objective-c xcode
UIAlertControllerにリスト（PickerかTableView）を追加する方法


通常・・・かはわかりませんが、このようなケースでご自身でUIViewControllerのサブクラスを作成します。  
ご承知かもしれませんがUIAlertControllerもUIViewControllerベースです。

ポイントは、

  * viewの背景色をclearにしポップアップダイアログのように見せる
  * iOS 8以降、modalPresentationStyleをUIModalPresentationOverCurrentContextにし、背面のビューコントローラが映るようにする
  * UIViewControllerTransitioningDelegateプロトコルを採用するオブジェクトをtransitioningDelegateにセットし、ポップアップのようなトランジションをさせる 
    * そのデリゲートメソッドでUIViewControllerAnimatedTransitioningプロトコルを採用するオブジェクトを返す
  * 画面回転に関するイニチアシブに注意する（ナビゲーションコントローラを噛ませばそちら優先ですし、モーダル表示がこのビューコントローラ単体であればそれになりますが、背面の設定に追随するなど色々あるでしょう。ビューコントローラベースになってからアラート表示中でも回転するようになりましたが、iOS 6以前では回転しませんでした）

です。  
ビューコントローラのview以下のデザインなどはストーリーボードで通常通り行えます。このように作成したビューコントローラをいつも通りpresent...するだけです。

おそらく、ほとんどの作業はビューコントローラの作成と変わりません。UIViewControllerTransitioningDelegateとUIViewControllerAnimatedTransitioningのみ、学習が必要になると思います。


CC BY-SA 3.0
2016-03-18T18:48:07.500
23267
2016-03-18T18:48:07.500
14847
23253
answer