【swift】UIActionSheetの使い方【CoffeeNote開発日記】

AlertControllerが機能しない

simulatorでうまくいっていたはずのAlertControllerが,実機で呼ぼうとするとうまくきのうしない.

Delegateのエラーがなんかになってしまう.

iOS8から新しいクラスとしてUIActionSheetというのが追加されたらしいのでそれを使ってみる

UIActionSheetを導入

参照:http://www.snip2code.com/Snippet/85890/swift-UIActionSheet-sample

ということで自分は,削除ボタンを押したときにその確認アラート的な感じでActionSheetを導入.

ソースコードは以下

  // 削除ボタンと結びつける
  @IBAction func pushedDeleteButton(sender: AnyObject) {
    var sheet = UIActionSheet()
    sheet.title = "Deleting This Note"
    sheet.delegate = self
    sheet.addButtonWithTitle("OK")
    sheet.addButtonWithTitle("Cancel")
    sheet.cancelButtonIndex = 1
    
    sheet.showInView(self.view)
  }

  func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int) {
    if (buttonIndex==1) {
      // Cancel Button
      println("Cancel button tapped.")
    }else{
      // OK Button
      println("OK button tapped.")

      /* Delete Note */
      self.performSegueWithIdentifier("unwindFromEditByDeleteButton", sender: self)
    }
  }

最後に削除したあとにsegueで違う画面に飛ばすように設定してる.

cancelButtonIndexを指定しないといけないのが若干戸惑ったけど,こういう使い方らしい.

一つ目のセルからindexが0で始まってて,そのうちcancelボタンとして振りたいところのインデックスの値をsheetのプロパティのcancelButtonIndexにつっこむ.