【iPhone】メモ帳アプリを制作してみる Part.3【swift】
一覧画面とメモ画面を繋ぐよ。
次に、一覧画面(TableViewController)とメモ画面(ViewController)を繋ぐ。
繋ぐ作業が多くて疲れてくるけど、頑張れ。
一覧画面(TableViewController)を選択した時に上部に表示されるアイコンの一番左。黄色いやつ。これを右クリックして、そのままメモ画面(ViewController)にドラッグ&ドロップ。
すると黒いウインドウが表示されるので、その中から「show」を選択する。
(画像だとPresentなんとかを選択していますが、無視して下さい。)
一覧画面(TableViewController)とメモ画面(ViewController)が繋がると、2つの間に矢印が表示される。
表示された矢印の四角い部分を選択。すると画像の位置に「identifier」と表示される部分があるはず。そこに適当な名前をつけてね。私は「toViwe(Viewへ)」にしたよ。
ちなみにidentifierとは識別子のこと。
あとでプログラム上で、ここでの繋がりを識別する際に使うから覚えておいて。
とりあえずセルを追加してみる。
セルをクリックしたらメモ画面に飛ぶようにしたい。
そのためには、とりあえずセルを追加したい。今はまだ真っ白のままだからね。
というわけで・・・
セル作った。
作り方はすっごい簡単。下記をswiftファイルに追加するだけ。
(私の場合は「ListViewController.swift」さっき一覧用に作ったやつね。)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//セルの総数を設定するメソッド override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ return 3 } //セルの値を設定するメソッド override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ var cell = tableView.dequeueReusableCellWithIdentifier("MemoListCell")! as UITableViewCell cell.textLabel!.text = "タイトル" return cell } |
コピペだけでもいいけど、勉強のために出来れば覚えて下さい。
上がセルの総数を設定するメソッド。下がセルの値を設定するメソッド。長々と書いてあるけど、メソッド名と引数だけ暗記すればオッケー。
◆セルの総数を設定するメソッド。
tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
私は最後に「Int」ってついてるtableViewって覚えてる。今は3って入れてるけど、最終的には「登録されているメモの数」が入るようにする。
◆セルの値を設定するメソッド。
tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
こちらも同じく最後に「UITableViewCell」ってついてるtableView(ry)
今は「タイトル」って入れてるけど、最終的には各メモのタイトルが入るようにする。
それぞれ追加したら、上記画像のように表示されるようになる。
セルをクリックしたら、メモ画面に遷移するようにする。
1 2 3 4 5 6 7 8 9 10 11 12 |
//セルがタップされた時に呼び出されるメソッド override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { performSegueWithIdentifier("toView",sender: nil) } // Segueを設定 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { if (segue.identifier == "toView") { let subVC: ViewController = (segue.destinationViewController as? ViewController)! } } |
さらに上記を追加すっぞ!!!
◆セルがタップした時に呼び出されるメソッド
tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
これが書いてないと、セルをタップしても無反応になる。
◆Segue(飛び先)を設定
prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
これが書いてないと、タップされたときにどこへ飛んだらいいか分からなくなる。そしてフリーズする。”toView”の部分を自分が設定した値に変更してね。