読者です 読者をやめる 読者になる 読者になる

ダメリのブログ

日々の失敗・キャリア・プログラミング・株・毎日の失敗等。誰かの役に立てれば幸いです。

【初心者・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())・・・エンコード

 

エンコードのやり方についてはここを参照

qiita.com

 

//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"asdetailViewController

    }

 

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]