

cellを左にスワイプし、「削除ボタン」と「詳細ボタン」を表示させ、cellの削除と詳細ページへの遷移をしたいです。

削除ボタンは、以下のコードを書いて、成功しました。

[code]

      func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
      if editingStyle == .delete {
          dataList.remove(at: indexPath.row)
         testTableView.deleteRows(at: [indexPath], with: .fade)
     } }
    
[/code]

ですが、詳細ボタンの付け方と詳細ボタンを押した時の画面遷移のコードがわかりません。  
理想完成図は、以下の画像です。  
[![画像の説明をここに入力](https://i.stack.imgur.com/fCS6P.jpg)](https://i.stack.imgur.com/fCS6P.jpg)

よろしくお願いします。


CC BY-SA 3.0
2017-04-28T04:53:42.127
34343
2019-09-26T09:00:50.150
2017-04-28T05:17:57.663
19110
22835
question
swift tableview
cellを左にスワイプさせ「削除ボタン」と「詳細ボタン」を表示させたい


`UITableViewDelegate`のメソッド`tableView(_:editActionsForRowAt:)`を利用します。`UITableViewRowAction`クラスについて、リファレンスでお調べください。  
サンプルコードを載せておきます。テーブルの設定は、Storyboard上で行なっている前提になっています。

[code]

    import UIKit
    
    class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 12
        }
    
        // UITableViewDataSource
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
            cell.textLabel?.text = "No. \(indexPath.row)"
    
            return cell
        }
    
        // UITableViewDelegate
        func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
            let action = UITableViewRowAction(style: .default, title: "Detail"){ action, indexPath in
                // Do anything
            }
    
            return [action]
        }
    
    }
    
[/code]

`// Do Anything`の箇所に、ボタンをタップした時の処理を記述します。

[![画像の説明をここに入力](https://i.stack.imgur.com/6XBlz.png)](https://i.stack.imgur.com/6XBlz.png)


CC BY-SA 3.0
2017-04-28T12:16:25.873
34355
2017-04-28T12:16:25.873
18540
34343
answer