【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につっこむ.