Swift - 将数据从UITextField传递到另一个viewController中的TextView

时间:2017-07-10 09:56:49

标签: ios swift swift3 nsuserdefaults

我知道,此问题的主题曾多次被问到,但我没有为我的问题找到正确的解决方案,所以我希望有人可以帮助我。

我有两个viewControllers。在firstVC中,我使用textView更改了我的文字。此文本存储在UserDefaults中。现在,我想在secondVC的{​​{1}}上显示存储的文字。

我的textView代码:

firstVC

在这里,我在文本字段中编写文本并存储它。

我的class editprofileViewController: UIViewController { @IBOutlet weak var changeTextInput: UITextField! let defaults = UserDefaults.standard override func viewDidLoad() { super.viewDidLoad() let stringKey = UserDefaults.standard changeTextInput.text = stringKey.string(forKey: "savedStringKey") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } @IBAction func change(_ sender: Any) { let myText = changeTextInput.text; UserDefaults.standard.set(myText, forKey: "savedStringKey") UserDefaults.standard.synchronize() } }

secondVC

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

每次都在USerDeaults存储是不可能的。请记住,用户默认值可以包含少量数据。您可以提供的唯一非常必要的信息。

来到您的场景,如果您每次都从 FirstVC 导航到 SecondVC ,那么只需在第二个视图控制器上全局添加一个变量,然后在导航前在firstView控制器中分配到第二视图控制器。

答案 1 :(得分:0)

First ViewController

导入UIKit

类ViewController:UIViewController {

@IBOutlet weak var txtView: UITextView! //your textView

override func viewDidLoad() {
    super.viewDidLoad()

}

//MARK: - Button Action
@IBAction func btnClick(_ sender: UIButton) {

    let userDefaultStore = UserDefaults.standard //userDefault object
    userDefaultStore.set(txtView.text, forKey: "key_Value") //store textView value in userDefault

    //navigate secondViewController
    let secondVC = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
    self.navigationController?.pushViewController(secondVC, animated: true)
}

}

第二个ViewController

导入UIKit

类Sec​​ondViewController:UIViewController {

@IBOutlet weak var txtView: UITextView! // your textView
override func viewDidLoad() {
    super.viewDidLoad()

        let userDefault = UserDefaults.standard //create UserDefault object

        txtView.text = userDefault.string(forKey: "key_Value")!//get userdefault value using same key which used to store date and set in textView
        txtView.isUserInteractionEnabled = false
}

}

答案 2 :(得分:-1)

您可以使用UserDefaults.standard.string(forKey: )函数获取UserDefaults中存储的值。试试这个

self.bioTxt.text = UserDefaults.standard.string(forKey: "savedStringKey")