2017-04-06 9 views
0

TableViewControllerのタイトルを別のViewControllerから変更しようとしています。別のViewControllerでTableViewControllerのセルタイトルを変更します。

ViewControllers

第二のViewController 3個の細胞を有するものであり、第三の一つはテキストフィールド(コード内のinputText)、ボタン(changeText)とラベル(outputLabel)を有するものである(画像を参照) 。このアプリは、テーブルビューに戻ってViewControllerに戻ったときに、テキストフィールドに何を置いたかを覚えておきたいです。今何が起こるのですか:
- テキストを変更し、ボタンを押してラベルを変更します。
- 私は戻ってTableViewControllerに行くと、私は、私はちょうど変更ラベルと
であったとのViewControllerに入る - ラベルは、それは前にあったもので...

がどのように私はアプリは「覚えて行うことができます'私はテキストフィールドに何を入れたのか、ラベルはどういうものだったのでしょうか?私のコード(ViewController.swiftが、私は、このファイルに第三コントローラをリンクし、まだ何も(への第二のコントローラをリンクしていない)?):

import UIKit 

class ViewController: UIViewController { 

@IBOutlet weak var outputLabel: UILabel! 
@IBOutlet weak var inputText: UITextField! 
@IBAction func changeText(_ sender: UIButton) { 
    outputLabel.text = inputText.text 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 
} 

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

感謝を事前に!

+1

チェックこれを行うhttp://stackoverflow.com/a/33549729/7250862 –

答えて

0

あなたが最初のコントローラ(TableViewController)でごViewControllerを参照することができ、 は公共inputText

@IBOutlet public weak var inputText: UITextField! 

viewDidAppearにテキストを取得

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    let text = ViewControllerVar.inputText.text //your text 
} 
+0

今、どこのテキストを配置するのかわからないのですか? TableViewController.swiftに '@IBOutlet public weak var inputText:UITextField!'を入れ、 'override func viewDidAppear(_ animated:Bool){ super.viewDidAppear(animated) let text = ViewControllerVar.inputText.text //あなたは、テキスト } 'ViewController.swiftでは、しかしそれは動作しません? –

+1

ViewControllerですでに定義されているinputTextをpublicに変更し、TableviewControllerから参照へのアクセスのみを行う必要があります – Scinfu

関連する問題