###前提・実現したいこと
TableViewControllerにあるボタンを押すと、ViewControllerへ遷移すると同時にViewControllerのTextViewに決まった文字(例えば"テスト"など)を表示するようにしたい。
ボタンは複数あり、対応するボタンごとに表示する文字は異なる。
###発生している問題・エラーメッセージ
遷移先のViewControllerにあるTextViewが空白のままになる。
###該当のソースコード
swift
1**ViewController** 2 3import UIKit 4 5class ViewController: UIViewController,TableViewControllerDelegate 6{ 7 8 @IBOutlet weak var mytext: UITextView! 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 } 13 14 // Delegateで呼ばれる 15 func setText(text: String) { 16 mytext.text = text 17 } 18 19} 20 21 22**TableViewController** 23import UIKit 24 25protocol TableViewControllerDelegate: class { 26 func setText(text: String) 27} 28 29class TableViewController: UITableViewController{ 30 31 weak var delegate: TableViewControllerDelegate! 32 33 override func viewDidLoad() { 34 super.viewDidLoad() 35 } 36 37 @IBAction func zenbun(sender: AnyObject) { 38 // ボタン押下時にDelegateメソッドで値を設定する 39 delegate?.setText("test") 40 } 41 42}
前提の説明を修正しました。アドバイスお願いします。
前提がうまく把握できないので情報追加の依頼をさせてください。
実現したい流れは以下でしょうか?
1. ViewController(A) から TableViewController へ遷移
2. TableViewController でテキストを入力
3. TableViewController から ViewController(B) へ遷移、
この時、2 で入力したテキストを ViewController(B) で表示する
もしこうだとすると、
TableViewController ⇄ ViewController(B)
の画面遷移とテキスト受け渡しが問題なのであって、
ViewController(A)は関係ないのでは?と思うのですが、いかがでしょうか。
前提について、
関係のない ViewController(A) の記述を削除していただくか、
ViewController(A) が必要な理由の補足をお願いします。
関係ない説明を削除しました。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー