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

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

ただいまの
回答率

90.53%

  • Swift

    8581questions

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

swiftについてお知恵頂きたく存じます

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 474

mahon

score 30

プログラミングを初心者で現在swiftを勉強しております。
画面遷移時に、データを受け渡すプログラムを今書いておりますが、
エラーが出てしまい止まっている状況でございます。

以下のようなコードをになりますが、どこを修正すると良いのか、
お知恵を頂けますと幸いです。

全体像をまだ理解しきれていない為、アドバイス頂く為にお出しする
情報に不足があるかもしれませんが、お力を頂けますと幸いです。

ViewController.swift

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var txt_data1: UITextField!
@IBOutlet weak var txt_data2: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.

txt_data1.text = ""
txt_data2.text = ""
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
print(segue.identifier)

if segue.identifier == "page1" {
// ViewDetailControllerへ遷移する際、値を渡す
let viewDetailController: ViewDetailController = segue.destinationViewController as! ViewDetailController

// データを退避
viewDetailController._data1 = txt_data1.text!
//ここでエラーメッセージが出てしまい(Thread1 : EXC_BAD_INSTRUCTION(code = EXT_1386_INVOP,subcode=0x0)と
表示されております)//

viewDetailController._data2 = txt_data2.text!

}
}

// 戻るボタン押下時のメソッド
@IBAction func unWindows(segue: UIStoryboardSegue){
if segue.identifier == "page2" {

// 遷移元のControllerを取得
let viewDetailController: ViewDetailController = segue.sourceViewController as! ViewDetailController

// 画面にデータを設定
txt_data1.text = viewDetailController.txt_set_data1.text
txt_data2.text = viewDetailController.txt_set_data2.text

}

}

}

遷移後のページ

import UIKit

class ViewDetailController: UIViewController {

@IBOutlet weak var txt_set_data1: UITextField!
@IBOutlet weak var txt_set_data2: UITextField!

var _data1 = ""
var _data2 = ""

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

// ここで設定
txt_set_data1.text = _data1
txt_set_data2.text = _data2
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

簡略化しましたが、Swift3Xcode8.2.1で以下コードで値を渡せました。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var txt_data1: UITextField!
    @IBOutlet weak var txt_data2: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        if segue.identifier == "page1",
            let viewDetailController = segue.destination as? ViewDetailController {

            // ViewDetailControllerへ遷移する際、値を渡す
            viewDetailController._data1 = txt_data1.text!
            viewDetailController._data2 = txt_data2.text!
        }
    }
}


Versionの違い等ありましたら、コメントに書いてください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/19 12:45

    ありがとうございます!
    頂いたアドバイスで解決出来ました!
    今後とも宜しくお願い致します。

    キャンセル

同じタグがついた質問を見る

  • Swift

    8581questions

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