【发布时间】:2020-05-01 14:10:23
【问题描述】:
我有一个 Input(UITextfied),我希望其中的数据在我的另一个 ViewController 中更改 DesA
我的第一个 ViewController:面部(标签 DesA 所在的位置)
我的第二个 ViewController:ServiceAChangeViewController(输入和按钮在哪里)
(对不起,奇怪的名字)
基本上我想在我的UITextField 中写一个文本,然后单击一个使用核心数据保存它的按钮,然后在我的第一个视图控制器中更改DesA 标签
我按照 youtube 上的一些教程编写了这段代码
第二个视图控制器(ServiceAChangeViewController): var score = Facial(nibName: nil, bundle: nil).TitleChange var OutputLabel = Facial(nibName: nil, bundle: nil).DesA
``` @IBAction func saveData(_ sender: Any) {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "Entity", in: context)
let newEntity = NSManagedObject(entity: entity!, insertInto: context)
newEntity.setValue(score, forKey: "titleA")
do {
try context.save()
print("saved")
} catch {
print("Failed savign")
}
}
func getData() {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Entity")
request.returnsObjectsAsFaults = false
do {
if let result = try? context.fetch(request) as? [NSManagedObject] {
for data in result {
score = data.value(forKey: "titleA") as! String
}
} else {
print("Failed")
}
}
}
@IBAction func SubmitAnswer(_ sender: Any) {
OutputLabel?.text = score
score = String(InputA.text!)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
getData()
OutputLabel?.text = score
}```
第一个 ViewController(面部):
@IBOutlet var TitleA: UILabel!
var TitleChange = String()
override func viewDidAppear(_ animated: Bool) {
}
但是当我运行应用程序并输入文本时,它似乎并没有改变它也没有保存它。
【问题讨论】:
-
请正确格式化您的代码。