0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Swift Realmを使って、順番に保存する方法教えてください

Posted at

Realmを使って、TalbeViewCellのTextFieldに入力された6つの文字だけ保存したいです。

コードは以下のようになっています。よろしくお願いします。スクリーンショット 2020-02-11 22.12.41.png

import UIKit
import RealmSwift

class TableViewController: UITableViewController, UITextFieldDelegate{
override func viewDidLoad() {
super.viewDidLoad()
/* 6つのtextFieldにRealmデータを反映したい */
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return 6
}

/* セルの設定 */
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "myCell", for: indexPath) as! TableViewCell
    //テキストフィールドのデリゲート設定
    cell.textFieldOutlet.delegate = self

    return cell
}

/* エンターが押された時*/
func textFieldShouldReturn(_ textField: UITextField,  cellForRowAt indexPath: IndexPath) -> Bool {

/ここでtextFieldの文字をRealmに保存(indexPath.rowのデータのみ更新したい)/

    // 今フォーカスが当たっているテキストボックスに文字が入力されていたら
    if textField.text != "" {
        // 今フォーカスが当たっているテキストボックスからフォーカスを外す
        textField.resignFirstResponder()
        //次のタグ番号を持っているテキストボックスがあればフォーカスする
        let nextTag = textField.tag + 1
        if let nextTextField = self.view.viewWithTag(nextTag) {
            nextTextField.becomeFirstResponder()
        }
    }else{
        
    }
    return true
}

/* トラッシュボタンが押された時*/
@IBAction func deleteButtonPush() {
    let alertController = UIAlertController(title: "タスクをすべて削除しますか?",message: nil,preferredStyle: .alert)
    let action:UIAlertAction = UIAlertAction(title: "はい", style: .default){ (void) in

    /* ここでテキストフィールドのデータを全て削除したい */

    }
    let cancel:UIAlertAction = UIAlertAction(title: "いいえ", style: .default){ (void) in
    }
    /* 表示 */
    alertController.addAction(action)
    alertController.addAction(cancel)
    present(alertController, animated: true, completion: nil)
}

}

import UIKit

class TableViewCell: UITableViewCell {

@IBOutlet weak var textLabelOutlet: UILabel!
@IBOutlet weak var textFieldOutlet: UITextField!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

}

import UIKit
import RealmSwift

class Task: Object {
@objc dynamic var task: String? = nil
}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?