UITableViewのセルタップ時のモーダル画面遷移からプッシュ遷移に変更したいです。
(現在モーダル遷移は問題なく出来ています。)
やった事
1.[Edior]>[Embed In]>[Navigation Controller]を選択(Navigation Controllerを用意)
2.遷移元と遷移先のViewControllerをsegueで接続
3.segueのidentifierを設定
4.[Attributes Inspector]の[Kind]で[Show(e.g. Push)]に設定
5.下記のコードを追加
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { // セルの選択を解除 table.deselectRow(at: indexPath, animated: true) // 次の画面へ performSegue(withIdentifier: "toPreViewController", sender: indexPath.row) }
・・・としたところ通常のモーダル遷移のままでした。
プッシュ遷移の実装方法が知りたいです。
詳しい方よろしくお願いします。
現在ミニマムで再現中です。
ミニマムだと再現できました。。
NavigationControllerを後付けだと上手くいかないのでしょうか・・・?
Stroyboard上に出てくるNavigationbarとBackボタンが自分のプロジェクト上には表示されていません。。
import UIKit class TestViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { @IBOutlet weak var tableView: UITableView! let TODO = ["牛乳を買う", "掃除をする", "アプリ開発の勉強をする"] func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return TODO.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // セルを取得する let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) // セルに表示する値を設定する cell.textLabel!.text = TODO[indexPath.row] return cell } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { // セルの選択を解除 tableView.deselectRow(at: indexPath, animated: true) // 次の画面へ performSegue(withIdentifier: "toNext", sender: indexPath.row) } override func viewDidLoad() { super.viewDidLoad() } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/27 07:29 編集
2020/08/27 07:19
2020/08/27 07:24
2020/08/27 07:28
2020/08/27 07:31
2020/08/27 08:46
2020/08/27 09:10 編集
2020/08/27 09:14