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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

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

Q&A

解決済

1回答

1463閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

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

0グッド

0クリップ

投稿2017/02/18 08:55

プログラミングを初心者で現在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. }

}

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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

swift

1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var txt_data1: UITextField! 6 @IBOutlet weak var txt_data2: UITextField! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 11 } 12 13 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 14 15 if segue.identifier == "page1", 16 let viewDetailController = segue.destination as? ViewDetailController { 17 18 // ViewDetailControllerへ遷移する際、値を渡す 19 viewDetailController._data1 = txt_data1.text! 20 viewDetailController._data2 = txt_data2.text! 21 } 22 } 23}

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

投稿2017/02/18 09:51

編集2017/02/19 00:12
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/02/19 03:45

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問