###前提・実現したいこと
ここに質問したいことを詳細に書いてください
アラートでtextFiledに文字を入力しコアデータに保存しそれをlabelに表示したいのですが、textfiledに入力すると初めに設定してあるlabelが消えてしまう。
###アラートでtextfiledを表示し文字を入力しコアデータに保存、その後labelに表示
var goodGlife = ""
// 画像
@IBOutlet weak var img: UIImageView!
// 最期の目標
@IBOutlet weak var titleText: UILabel!
@IBAction func addbtn(_ sender: UIButton) {
// テキストフィールド付きアラート表示
let alert = UIAlertController(title: "ToDo", message: "文字を入力してください。", preferredStyle: .alert)
// OKボタンの設定
let okAction = UIAlertAction(title: "OK", style: .default, handler: {
(action:UIAlertAction!) -> Void in
// OKを押した時入力されていたテキストを表示
if let textFields = alert.textFields {
// アラートに含まれるすべてのテキストフィールドを調べる
for textField in textFields {
// AppDelegateのインスタンスを用意しておく
let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate
// エンティティを操作するためのオブジェクト
let viewContext = appDelegate.persistentContainer.viewContext
// ToDoエンティティオブジェクトを作成
let GoodGLife = NSEntityDescription.entity(forEntityName: "GoodGLife", in: viewContext)
// ToDoエンティティにレコード(行)を挿入するためのオブジェクトを作成
let newRecord = NSManagedObject(entity: GoodGLife!, insertInto: viewContext)
// 追加したいデータ(txtTitleに入力された文字)のセット
if textField.text! == "" || textField.text! == nil{
print("nilが入っています。")
}else{
newRecord.setValue(textField.text!, forKey: "title")
newRecord.setValue(Date(), forKey: "deta")
// レコード(行)の即時保存 do{ try viewContext.save() }catch{ } print("右の文字が入る\(textField.text!)")
// self.todoTask.append(textField.text!)
self.titleText.text=self.goodGlife
} } } }) alert.addAction(okAction) // キャンセルボタンの設定 let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) alert.addAction(cancelAction) // テキストフィールドを追加 alert.addTextField(configurationHandler: {(textField: UITextField!) -> Void in textField.placeholder = "テキスト" }) alert.view.setNeedsLayout() // シミュレータの種類によっては、これがないと警告が発生 // アラートを画面に表示 self.present(alert, animated: true, completion: nil) }
###試したこと コアデータに保存しない場合は文字を表示することが可能ですが、コアデータに入れると表示ができなくなってしまいます。 ###補足情報(言語/FW/ツール等のバージョンなど) swift3 xcode 10.3
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。