画面間でデータを受け渡す方法(その1)

画面間でデータを連携する方法を学習する。
これには大きく分けて二つの方法がある。

まずいちばん簡単な画面間で直接データを受け渡す方法を学ぶことにする。

Single View Applicationで最初の画面1を作り、Story Boardに2枚目の画面2をView Controllerで追加して、
プロジェクトナビゲータからNew File...を選び、iOSのSourceからCocoa Touch Classを選び、secondViewControllerと定義して、
画面2をアイデンティティ・インスペクタのCustom ClassのClassをsecondViewControllerに設定する。

画面1から画面2に遷移するように紐付けて、画面1に
@IBAction func returnTop(segue: UIStroryboardSegue){
}を書き込んで画面2から戻る設定しを貼り付ける。ボタンは付けず、記載のみとする。

画面2の「戻る」ボタンを配置して、画面2の上部にあるExitアイコンにドラッグする。これで画面2から画面1に戻れる。
(これは便利!戻り画面1のテキストフィールドの内容も保持される)

画面2にデータを受け渡すには画面1の
override func viewDidLoad( ) {super.viewDidLoad()
}
の中に、受け渡すデータを設定する。

引き継ぐ画面2に、
override func prepareForSegue(segue: UIStroryboadSegue,sender:AnyObject){
}
と書いて、ここに
let(varでも可)newView = segue.destinationViewController as! secondViewControllerと新たなviewContrillerの名前を定義し、
newView.textとして引き継ぐデータを定義して表示する。

文章で書くと長い。
以下、実際にやってみる。(できてしまえば、簡単だ)

story boardの画面はこんな感じの設定。
ーーーーーーーーーーーーーーーーーー

ーーーーーーーーーーーーーーーーーー

シミュレータはこれ、画面1と画面2の表示。

ーーーーーーーーーーーーーーーーーーーーーー
(備忘録)画面間のデータの受け渡し
コード
ーーーーーーーーーーーーーーーーーーーーーー
画面1
ーーーーーーーーーーーーーーーーーーーーーー
//
// ViewController.swift
// 画面間のデータ連携1
//
// Created by yasui_swift on 2015/12/06.
// Copyright © 2015年 darumammz.com. All rights reserved.
//
import UIKit
class ViewController: UIViewController {

@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let viewController2 = segue.destinationViewController as! secondViewController
viewController2.text1 = textField.text
}
@IBAction func returnTop(segue:UIStoryboardSegue){
}
}
ーーーーーーーーーーーーーーーーーーーーーー
画面2
ーーーーーーーーーーーーーーーーーーーーーー
//
// secondViewController.swift
// 画面間のデータ連携1
// 画面2
//
// Created by yasui_swift on 2015/12/06.
// Copyright © 2015年 darumammz.com. All rights reserved.
//
import UIKit
class secondViewController: UIViewController {

@IBOutlet weak var label2: UILabel!
var text1:String?

override func viewDidLoad() {
super.viewDidLoad()
label2.text = text1
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
ーーーーーーーーーーーーーーーーーーーーーー