TabBar で ActionSheet を表示させると一番下のボタンが押せなくなる | 静岡県富士市在住のiPhoneアプリ開発者ブログ

TabBar で ActionSheet を表示させると一番下のボタンが押せなくなる

Tabbar ベースのアプリでActionSheet を表示させると一番下のボタンが反応しない場合がある

下記のコードだと ActionSheet を表示したときに Tabbar の領域が反応しなくなる

[actionSheet showInView:self.view];
//self は UIViewController のサブクラス

Tabbar ベースアプリの例(Skype)
静岡県富士市在住のiPhoneアプリ開発者ブログ β

下記のように ActionSheet を表示させるとCancelが聞かない
なぜか、Skype はできている
静岡県富士市在住のiPhoneアプリ開発者ブログ β

ということで調べてみたら

- (void)showFromTabBar:(UITabBar *)view;

を発見

でもこれだと、引数に UITabBar が必要でスムースにポインタを取得できない

無理矢理キャストして

[actionSheet showFromTabBar:(UITabBar)self.view];

としてみたところ、タブバーの上部に表示されるようになった
Cancelボタンも反応する
でも見た目が微妙

でさらに調べたら
[actionSheet showInView:self.view.window];



でうまくいきました