質問: こんにちは。 iOSアプリをObjective-cで開発しています。 ポップアップダイアログを表示させ、テキスト入力と、リストから項目を選択できるUIを追加したいです。 UIAlertControllerを使用し、「addTextFieldWithConfigurationHandler」を使って、テキスト入力をさせることはできたのですが、リストを追加する方法がわかりません。 リストは、pickerでもTableViewでもどちらでも構わないのですが・・・。 どなたか、参考になる情報、ヒントなどをいただけないでしょうか・・・。
回答: 通常・・・かはわかりませんが、このようなケースでご自身でUIViewControllerのサブクラスを作成します。 ご承知かもしれませんがUIAlertControllerもUIViewControllerベースです。 ポイントは、 * viewの背景色をclearにしポップアップダイアログのように見せる * iOS 8以降、modalPresentationStyleをUIModalPresentationOverCurrentContextにし、背面のビューコントローラが映るようにする * UIViewControllerTransitioningDelegateプロトコルを採用するオブジェクトをtransitioningDelegateにセットし、ポップアップのようなトランジションをさせる + そのデリゲートメソッドでUIViewControllerAnimatedTransitioningプロトコルを採用するオブジェクトを返す * 画面回転に関するイニチアシブに注意する(ナビゲーションコントローラを噛ませばそちら優先ですし、モーダル表示がこのビューコントローラ単体であればそれになりますが、背面の設定に追随するなど色々あるでしょう。ビューコントローラベースになってからアラート表示中でも回転するようになりましたが、iOS 6以前では回転しませんでした) です。 ビューコントローラのview以下のデザインなどはストーリーボードで通常通り行えます。このように作成したビューコントローラをいつも通りpresent...するだけです。 おそらく、ほとんどの作業はビューコントローラの作成と変わりません。UIViewControllerTransitioningDelegateとUIViewControllerAnimatedTransitioningのみ、学習が必要になると思います。