【初心者・swift】辞書アプリ※備忘
ポイント
①配列について
書き方はいろいろあるみたい。下記はどちらでも可。
var data: Array<String> = ["愛加那","赤橋登子","明智光秀","朝日姫","足利尊氏"]
var data: [String]= ["愛加那","赤橋登子","明智光秀","朝日姫","足利尊氏"]
取り出し方もいつも忘れがちだから復習。
data[indexpath.row]。
②urlの表示
urlの指定→翻訳→urlの読み込み→tableviewに表示。
//URLの指定
let url = "https://ja.wikipedia.org/wiki/\(self.receive)".
stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())・・・エンコード
エンコードのやり方についてはここを参照
//URLをswiftに理解できるように翻訳
let nsurl = NSURL(string: url!)
//URLを読み込む
let request = NSURLRequest(URL: nsurl)
//tableviewに表示
self.detailview.loadRequest(request)→detailviewはtableviewね。
③セルをタップしたら、次の画面へ。
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
<#code#>
}
storyboardにどの画面を読んでくるのかを指示
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
let nextView = self.storyboard?.instantiateViewControllerWithIdentifier("呼び出す画面名=storyboardID") as! detailViewController
}
navigationControllerに呼び出した画面(=遷移先の画面)を一番前に出すように依頼
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let nextView = self.storyboard?.instantiateViewControllerWithIdentifier("詳細") as! detailViewController
self.navigationController?.pushViewController(nextView, animated: true)
nextView.receive = self.data[indexPath.row]
}
④2つのtableview間でのデータの受け渡し。※めっちゃ苦手
ViewController.swift
detailViewController.swift
セルを押したら画面遷移だけではなくdetailViewController.swiftに選んだデータを渡さないとならない。→まずはdetailViewController.swiftの方にデータを受け取る場所を作る
まずはdetailViewController.swiftの方にデータを受け取る場所を作る
var receive: String!
次にViewController.swiftに移動
選んだ言葉(nextview)をreceiveに入れいれ、配列から要素を取る。
nextView.receive = self.data[indexPath.row]