アクションシートの表示に関するメモ


アクションシートを使うときの注意点を2つだけメモしておく。

キャンセルボタンを加える

アクションシートを開いたあとで何もせずにシートを閉じるために、キャンセルボタンをシートの中に加えたい。そのとき、加えたボタンがキャンセルボタンであることを認識させれば、ボタンを押したときの処理をわざわざ実装する必要がなくなる。

例えば以下のように書く。

        UIActionSheet *as = [[UIActionSheet alloc] init];
        as.title = @"Share Data Using:";
        as.delegate = self;
        
        [as addButtonWithTitle:@"Email"];
        [as addButtonWithTitle:@"Message"];
        [as addButtonWithTitle:@"Twitter"];
        [as addButtonWithTitle:@"Cancel"];
        as.cancelButtonIndex = 3;

4番目のボタンが「キャンセル」なので、as.cancelButtonIndex = 3とする(番号は0始まりなので)。

アクションシートの表示方法を指定する

画面上に、ツールバーがあるとき、タブバーがあるとき、その他何もないとき、でアクションシートの表示指定が異なる。これを区別しないと、コードの実行時にWarningが出て気分がよくない。

  1. ツールバーが設置された画面でアクションシートを表示するとき
  [as showFromToolbar:self.toolBar];
  1. タブバーが設置された画面でアクションシートを表示するとき
   [as showFromTabBar:self.tabBarController.tabBar];
  1. その他何もないとき
  [as showInView:self.view];