質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

365閲覧

UITableViewControllerのcellをタップして、次のUITableViewControllerに遷移させたいのですが・・・

masimasi

総合スコア32

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/05/27 03:21

編集2018/05/27 04:48

UITableViewControllerのcellをタップして、
次のUITableViewControllerに遷移させたいのですが、

イメージ説明

中央UITableViewControllerのcellをタップすると
右UITableViewControllerに遷移する という動き

すみません、基本がわかってないかもしれません。

タップしたらsegueする という処理は、どう書けばいいのでしょうか?

func tableView(table: UITableView, didSelectRowAtIndexPath indexPath:NSIndexPath) {
self.performSegue(withIdentifier: "showNextTableViewController", sender: nil)
}

ではないんですよね?

cellはxibで設定してます。

単純に
cellをタップ→segueする 部分だけ教えてほしいです。
おそらく私の基本ができてないっぽいので、

正解へのキーワードだけでも教えてください。

そこから自分で調べてがんばります!!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

SegueIdentifireshowNextTableViewControllerと記述してあれば遷移すると思います。

投稿2018/05/27 04:14

_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masimasi

2018/05/27 04:49

お返事ありがとうございます。UITableViewControllerのcellだとうまくいかないんですよね・・・難しい
_Kentarou

2018/05/27 06:04 編集

セルから結ぶのでは無くて、セグエはViewControllerから結んで下さい。 ちなみにdidSelectRowAtIndexPathは呼ばれてますか?
masimasi

2018/05/27 23:49

お返事ありがとうございます。やってみます
masimasi

2018/05/29 01:14

didSelectRowAtIndexPath 呼ばれてないのだと思います。(すみません、判断の仕方がわかりません) class EventListTableViewController: UITableViewController { @IBOutlet weak var sampleTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() //セルの登録 tableView.register(UINib(nibName: "TableViewCell", bundle: nil), forCellReuseIdentifier: "TableViewCell") sampleTableView.delegate = sellf } override func tableView(_ tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { self.performSegue(withIdentifier: "showNextTableViewController", sender: nil) } } これで動くと思ったのですが動かないです。 override func tableView に対して Method does not override any method from its superclass エラーが出てしまうので デリゲートに失敗してるのでしょうか
guest

0

自己解決

override func tableView(_ table: UITableView,didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showNextTableViewController",sender: nil)
}

とりあえずこれで動きました。

didSelectRowAtIndexPath は動かせませんでした。
デリゲートの設定が失敗してるのでしょうか?

もう少しやってみます

投稿2018/05/29 01:05

masimasi

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/05/29 01:37

didSelectRowAtIndexPathはSwift2の頃の書き方です。 あまり古い記事を参考にしないようにしましょう。
masimasi

2018/05/29 01:42

ありがとうございます。助かります
masimasi

2018/05/29 01:54

あーーーー!!しらべました!!わかりました!! override func tableView(_ table: UITableView,didSelectRowAt indexPath: IndexPath) { performSegue(withIdentifier: "showNextTableViewController",sender: nil) } これであってたんですね!! ありがとうございました!!
masimasi

2018/05/29 02:04

すみません、prepareの今の書き方は以下であってますしょうか? override func prepare(for segue: UIStoryboardSegue, sender: Any?) {} ぽつりぽつりもうしわけないです。これで最後の質問にいたします。 fuzzballさんのおかげで一個何か進みました。ありがとうございました
masimasi

2018/05/29 03:00 編集

ありがとうございます。 もお一個 進めそうです
guest

0

cellはxibで定義してもいいですが、
storyboardの方が楽かもしれませんよ。

https://i-app-tec.com/ios/tableview-cell.html
が参考になれば幸いです。

投稿2018/05/27 03:27

hameji

総合スコア1380

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masimasi

2018/05/27 04:50

お返事ありがとうございます。調べてみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問