破壊的なスタイルとUIAlertActionを使用してボタンを削除します

CodeMonkey

私はswiftを初めて使用し、連絡先アプリに取り組んでいます。ユーザーがdeleteボタンをクリックしたときに持っている連絡先を削除できるようにしたいのですが、実装に問題があります。現時点ではcontact、ユーザーがクリックしときを確認できる関数Show Detailsがあり、cancel buttonもありますしかし、私の削除のために、私がクリックした連絡先をすべて削除できるようにしたいと思います。以下にコードを貼り付けます。

  override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let selectedContact = contacts[indexPath.row] as? Contact
        let name = selectedContact!.contactName!
        let actionHandler = { (action:UIAlertAction!) -> Void in
            //            self.performSegue(withIdentifier: "EditContact", sender: tableView.cellForRow(at: indexPath))
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let controller = storyboard.instantiateViewController(withIdentifier: "ContactController")
                as? ContactsViewController
            controller?.currentContact = selectedContact
            self.navigationController?.pushViewController(controller!, animated: true)
        }

        let alertController = UIAlertController(title: "Contact selected",
                                                message: "Selected row: \(indexPath.row) (\(name))",
            preferredStyle: .alert)

        let actionDelete = UIAlertAction(title: "Delete" ,
                                   style: .destructive,
                                   handler:nil)

        let actionCancel = UIAlertAction(title: "Cancel",
                                         style: .cancel,
                                         handler: nil)
        let actionDetails = UIAlertAction(title: "Show Details",
                                          style: .default,
                                          handler: actionHandler)
        alertController.addAction(actionCancel)
        alertController.addAction(actionDetails)
        alertController.addAction(actionDelete)
        present(alertController, animated: true, completion: nil)
    }
Sh_Khan

varを作成して追加する必要がないため、アクションの有無にかかわらず、これをすべて試すことができます。addActionハンドラーを直接使用することができます。

alert.addAction(UIAlertAction(title: "Delete", style:.destructive, handler: { (action) in 

      contacts.remove(at:indexPath.row) 
      tableView.deleteRows(at:[indexPath],with:.fade)

}))

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let selectedContact = contacts[indexPath.row] as? Contact
    let name = selectedContact!.contactName! 
    let alertController = UIAlertController(title: "Contact selected",
                                            message: "Selected row: \(indexPath.row) (\(name))",
        preferredStyle: .alert)


     alertController.addAction(UIAlertAction(title: "Show Details", style:.default, handler: { (action) in 

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let controller = storyboard.instantiateViewController(withIdentifier: "ContactController")
            as? ContactsViewController
        controller?.currentContact = selectedContact
        self.navigationController?.pushViewController(controller!, animated: true)

    }))

    alertController.addAction(UIAlertAction(title: "Delete", style:.destructive, handler: { (action) in 

        contacts.remove(at:indexPath.row) 
        tableView.deleteRows(at:[indexPath],with:.fade)

    }))

    alertController.addAction(UIAlertAction(title: "Cancel", style:.cancel, handler:nil))  

    present(alertController, animated: true, completion: nil)
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タプル要素を破壊的な割り当てと交換します

分類Dev

タイトルを使用して破壊する

分類Dev

ボタンを使用して Tkinter を使用して別のボタンを破壊する

分類Dev

ボタンとajaxを使用してmysqlを削除します

分類Dev

インターフェイスを使用したtypescript破壊割り当て

分類Dev

壊れたPPAの破壊的な大混乱... PPAパージをインストールしたり、ソフトウェアセンターを開いたりすることはできません。助けてください!

分類Dev

壊れたPPAの破壊的な大混乱... PPAパージをインストールしたり、ソフトウェアセンターを開いたりすることはできません。助けてください!

分類Dev

ListViewの削除ボタンを使用して行を削除します

分類Dev

Numbaはインプレースに影響を与えることでデータを破壊します

分類Dev

jQueryを使用して:: afterCSSスタイルを削除します

分類Dev

attrjqueryを使用してスタイル属性を削除します

分類Dev

FacebookのようなTwitterボタンのスタイルを変更しようとしています

分類Dev

Fedoraで機能しない削除ボタンを使用してファイルを削除する

分類Dev

ExoPlayer:再生ボタンとタイムライン行の間の余分なスペースを削除します

分類Dev

FirefoxとSafariは異なるボタンスタイルを表示します

分類Dev

QMdiSubWindowのアイコンとスタイルを削除します

分類Dev

knockoutJSのbyボタンを使用してテーブル行を削除します

分類Dev

スワイプしてuitableviewセルのボタンを削除したままにしてから戻ると、クラッシュが発生します

分類Dev

独自のスタイル削除ボタンを使用したjqGrid

分類Dev

ボタンを使用して画像を削除します

分類Dev

VBAを使用してスライドのスタイルを失うことなく、テキストの余分なスペースを削除しますか?

分類Dev

ボタンクリックイベントを使用して、ag-gridを破棄します

分類Dev

Dockerインターフェースはwifiインターネットを破壊します

分類Dev

ボタンを使用してスタイルを変更し、この状態を保存します

分類Dev

JAVAスイングでは、JFXPanelを使用してJAVAFXボタンを実装し、jpanelを削除して再度追加すると、シーンが削除または非表示になります。

分類Dev

styled-componentを使用してボタンをクリックしてスタイルを切り替えます

分類Dev

SwiftUIの破壊的なボタンスタイル

分類Dev

ボンドを使用してxmlを逆シリアル化するとSystem.IO.InvalidDataExceptionがスローされます:予期しないノードタイプ

分類Dev

jsを使用してボタンを削除することはできません

Related 関連記事

  1. 1

    タプル要素を破壊的な割り当てと交換します

  2. 2

    タイトルを使用して破壊する

  3. 3

    ボタンを使用して Tkinter を使用して別のボタンを破壊する

  4. 4

    ボタンとajaxを使用してmysqlを削除します

  5. 5

    インターフェイスを使用したtypescript破壊割り当て

  6. 6

    壊れたPPAの破壊的な大混乱... PPAパージをインストールしたり、ソフトウェアセンターを開いたりすることはできません。助けてください!

  7. 7

    壊れたPPAの破壊的な大混乱... PPAパージをインストールしたり、ソフトウェアセンターを開いたりすることはできません。助けてください!

  8. 8

    ListViewの削除ボタンを使用して行を削除します

  9. 9

    Numbaはインプレースに影響を与えることでデータを破壊します

  10. 10

    jQueryを使用して:: afterCSSスタイルを削除します

  11. 11

    attrjqueryを使用してスタイル属性を削除します

  12. 12

    FacebookのようなTwitterボタンのスタイルを変更しようとしています

  13. 13

    Fedoraで機能しない削除ボタンを使用してファイルを削除する

  14. 14

    ExoPlayer:再生ボタンとタイムライン行の間の余分なスペースを削除します

  15. 15

    FirefoxとSafariは異なるボタンスタイルを表示します

  16. 16

    QMdiSubWindowのアイコンとスタイルを削除します

  17. 17

    knockoutJSのbyボタンを使用してテーブル行を削除します

  18. 18

    スワイプしてuitableviewセルのボタンを削除したままにしてから戻ると、クラッシュが発生します

  19. 19

    独自のスタイル削除ボタンを使用したjqGrid

  20. 20

    ボタンを使用して画像を削除します

  21. 21

    VBAを使用してスライドのスタイルを失うことなく、テキストの余分なスペースを削除しますか?

  22. 22

    ボタンクリックイベントを使用して、ag-gridを破棄します

  23. 23

    Dockerインターフェースはwifiインターネットを破壊します

  24. 24

    ボタンを使用してスタイルを変更し、この状態を保存します

  25. 25

    JAVAスイングでは、JFXPanelを使用してJAVAFXボタンを実装し、jpanelを削除して再度追加すると、シーンが削除または非表示になります。

  26. 26

    styled-componentを使用してボタンをクリックしてスタイルを切り替えます

  27. 27

    SwiftUIの破壊的なボタンスタイル

  28. 28

    ボンドを使用してxmlを逆シリアル化するとSystem.IO.InvalidDataExceptionがスローされます:予期しないノードタイプ

  29. 29

    jsを使用してボタンを削除することはできません

ホットタグ

アーカイブ