【Xcode6.0.1,iOS8】UIActionSheetにUIPickerViewを埋め込み(addSubview)できなくなっていることについて
UIActionSheetへのUIPickerViewの埋め込みはすでにiOS7の時からすでに挙動が何か変でしたが、
iOS8から本格的に動かなくなりました、フリーズします。
念のためiOS6の時の挙動の様子を写真で。
ちなみにこの件に関しては、stackoverflowでも質問が出ています。
【Add UIPickerView in UIActionSheet from IOS 8 not working】
http://stackoverflow.com/questions/24366437/add-uipickerview-in-uiactionsheet-from-ios-8-not-working
結論から言うと、UIActionSheetにaddSubviewするな、ということです。
諦めましょう。Appleが仕様を変更しました。
じゃあ代わりにどうするのか。
それは作るアプリのどんな状況でUIPickerViewを使いたいかによります。
UIPickerViewを使いたい場合、ユーザーに対して複数の選択肢を提示し、
スタイリッシュに選択を行ってもらいたいということですよね。
選択肢はおおまかに言って3つ。
1.UIPickerViewをUIViewControllerなどに直接のっける
2.UIImgeViewやUIViewなどの上にのっけてUIPickerViewを使ってみる
3.UITableViewControllerなどの別の選択方法をModalに提示する
どれを使うかはアプリによります。
ただ選択肢の3だと、たとえばUITableViewControllerをModalで出現させる場合、ViewControllerの切り替えが起きるので少し大げさです。
ユーザーに選ばせる選択肢が重要なものである時、選択肢の豊富さをひと目でわかって欲しい時などであればModal的にUITableViewControllerを使うという選択肢もあり。
それぞれのアプリに合った実装を施すのがベストです。
以上です。