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

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

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

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

Q&A

解決済

2回答

3485閲覧

swift のクラス間の@IBOutlet の共有

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

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

0グッド

0クリップ

投稿2016/04/10 06:22

編集2016/04/13 08:22

###前提・実現したいこと
あるクラスに記述された@IBOutlet を別のクラスで使用したい。

###発生している問題・エラーメッセージ

use of unresolved identifier

###該当のソースコード

swift

1import UIKit 2 3 class ViewController: UIViewController{ 4 5 @IBOutlet weak var mytext: UITextView! 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 } 11 12 override func didReceiveMemoryWarning() { 13 super.didReceiveMemoryWarning() 14 // Dispose of any resources that can be recreated. 15 } 16 17 18}

swift

1 2import UIKit 3 4class TableViewController: UITableViewController{ 5 6 @IBAction func test(sender: AnyObject) { 7 mytext.text = "hello" 8 } 9 10}

###補足情報(言語/FW/ツール等のバージョンなど)
swift2,xcode7.3

###追記(参照へ変更)
ViewControllerは上記のまま

swift

1import UIKit 2class TableViewController: UITableViewController{ 3 4 var VC :ViewController! 5 6 @IBAction func test (sender: AnyObject) { 7 VC?.mytext.text = "hello" 8 } 9 10} 11

storyboardではTableViewControllerからViewControllerへ推移した際、ViewControllerのTextViewに自動で文字が書き込まれるようにしてます(したい)。

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

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

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

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

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

happy_ryo

2016/04/11 04:18

Storyboard 上でこれらのクラスを用いてどのような設定をしているかの追加情報が欲しい
guest

回答2

0

ベストアンサー

質問の意図と異なった回答であれば申し訳ないのですが

storyboardではTableViewControllerからViewControllerへ推移した際、ViewControllerのTextViewに自動で文字が書き込まれるようにしてます(したい)。

という部分をみて、こういうことかなと思ったので書いておきます。

遷移先の ViewController へ値を渡して表示したいのであれば
TableViewController でのアクションの際に遷移先のビューに値を渡すのではなく
TableViewController でのアクションの際は、渡したい値を TableViewController 内で宣言したインスタンス変数に格納し
画面遷移時に以下の様に、遷移先へ値を引き渡せば良いと思います。

swift

1import UIKit 2class TableViewController: UITableViewController{ 3 4 var targetString: String? 5 6 @IBAction func test (sender: AnyObject) { 7 targetString = "hello" 8 } 9 10 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 11 if segue.identifier == "遷移先のidentifier" { 12 let controller = (segue.destinationViewController as! UINavigationController).topViewController as! ViewController 13 if let targetString = targetString { 14 controller.myText.text = targetString 15 } 16 } 17 } 18 19}

投稿2016/04/13 16:17

happy_ryo

総合スコア56

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

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

退会済みユーザー

退会済みユーザー

2016/04/14 05:10

"遷移先のIdentifier"、これはこのまま実行すんでしょうか?その場合だとTextViewは空白になります。
happy_ryo

2016/04/14 05:23

その部分は、遷移用に Storyboard 上で設定した segue の identifier に置き換えて下さい。
退会済みユーザー

退会済みユーザー

2016/04/14 05:44 編集

Thread 1:signal SIGABRTというふうにエラーが出ます。
happy_ryo

2016/04/14 05:43

Storyboard が現状どのようになって居るか、画像などをいただけませんか? メッセージの通り、遷移先の ViewController が UINavigationController では無いために出ているエラーですが、この部分を私が解決するためには追加の情報が必要です。
退会済みユーザー

退会済みユーザー

2016/04/14 05:50

今まで問題解決に付き合ってくださって感謝しています。この質問で自分の知識の無さを痛感しました。そのためこの質問を終了して、もう一度一から勉強したいと思います。今までありがとうございました。
guest

0

TableViewControllerからViewControllerのインスタンスを参照してください。
そうすれば、以下のように書けます。

Swift

1viewController.mytext.text = "hello"

投稿2016/04/10 07:15

Stripe

総合スコア2183

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

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

退会済みユーザー

退会済みユーザー

2016/04/10 07:45

参照して書いてみましたが、helloと表示されず空白のままです。他にどうしたら良いでしょうか?
Stripe

2016/04/10 08:41

そのコードを掲載してください。
退会済みユーザー

退会済みユーザー

2016/04/10 09:07

掲載しました。
Stripe

2016/04/10 09:59

ViewControllerのインスタンスを新規に生成するのではなく、既存のインスタンスを参照してください。 TableViewControllerとViewControllerの関係はどうなっていますか?
退会済みユーザー

退会済みユーザー

2016/04/13 08:23

参照になってますか? またそれらの関係も書きました。
Stripe

2016/04/13 10:43

TableViewControllerからViewControllerへ遷移するんですか? そのtestメソッドが実行される時点でViewControllerのインスタンスは存在するんですか?
退会済みユーザー

退会済みユーザー

2016/04/13 10:49

そうです。そのように遷移します。 インスタンスの存在がよくわかりません。クラスだけあります。
Stripe

2016/04/13 14:57

インスタンスの存在がよくわからないなら、どうにもなりません。
退会済みユーザー

退会済みユーザー

2016/04/14 05:01

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問