読者です 読者をやめる 読者になる 読者になる

UIActionSheetにのせたUIPickerViewが動きにくい

UIActionSheetにピッカーを配置したところ、反応が鈍い。
なんか、うまく動かないんですね。

今回、仕様としてそれとは別にActionSheetのボタン名称を変更しなきゃならないというのがありました。

ActionSheetをinitするときに「cancelButton:(NSString*)」なんてのを使うので、それを設定してやりゃいいんじゃないのー?なんて思ったんですが、これもやっぱりだめ。

 ところが、怪我の功名というか、これ設定したらピッカーがびゅんびゅん動くようになりました。
 あれー?なんでかな?と思ってみてみると、画面の下すれすれまで表示されていたピッカーが今度は画面の下から少し浮いて表示されている…という。

 あ、これ、ピッカーうまく動かないのってもしかして、タブバーにイベント持ってかれてる?

 と、いう事で、調べてみると、UITabControllerを使う場合、ActionSheetを表示するビューは現在のコントローラービューではなくて、TabControllerのビューを渡してあげなきゃいけない模様。

 なので、(actionSheetはUIActionSheetのインスタンスね)
[actionSheet showInView:view];
としてたのを
[actionSheet showInView:self.tabController.view];
と書き直しました。これでOK。ピッカーびゅんびゅん回ります。

ActionSheetのボタンは、よく考えたらToolBarに自分でCancelボタンとDoneボタンのせてただけだったので、そこかえればOKでした…。