2日前にも質問しましたが、連続で躓いてしまいすいません。。

やりたいこと&状況
こういった構成で、 2,4で取得したデータをデータベースに保存する。
TableViewCellクラスは複数のセルをまとめて扱うクラスとして定義してある。

1のセル テキストラベルのみ
2のセル UIPickerView
3のセル テキストラベルのみ
4のセル UITextFieldと 編集終了ボタン
5のセル Realmデータベースに保存する

画像の説明をここに入力

問題点
複数のセルから取得したデータを保存するように考えて設計していましたが、
セル2,セル4で取得したデータを処理しようと考えておりましたが、
このクラスで var categorySelected = "" , var textFieldInputed = ""で挿入されたデータを扱うことは出来ませんでした。
これはおそらく、TableViewのfunc cellForRowAtIndexPath でインスタンス化されたCustomTableViewCellのオブジェクトが個別に生成されているからだろうと思いました(おそらく)。

このように複数のカスタムされたセルから値を取得し、データベースに保存する(この場合RealmSwift)場合には、
どのように設計すべきだったのでしょうか。
もちろん、TableViewを使わずに同じことをするというのが現在やりたいことの解なのでしょうが、
TableViewCellを複数用いながらという前提なら、そのセルごとに保存させるか、モーダル表示させるなりして処理することが定石なのでしょうか?
それともこの状態からうまく処理する方法があるのでしょうか?

TableView

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
    var cell:UITableViewCell = UITableViewCell()

    switch indexPath.row{
    case 0:
        cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
    case 1:
        cell = tableView.dequeueReusableCellWithIdentifier("myPick", forIndexPath: indexPath) as! CustomAddTraining
    case 2:
        cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
    case 3:
        cell = tableView.dequeueReusableCellWithIdentifier("textField", forIndexPath: indexPath) as! CustomAddTraining
    case 4:
        cell = tableView.dequeueReusableCellWithIdentifier("done", forIndexPath: indexPath) as! CustomAddTraining
    default:
        break

    }

    switch indexPath.row{
    case 0:
        cell.textLabel?.text = "Choose Category"
    case 1:
        break
    case 2:
        cell.textLabel?.text = "Name Training"
    case 3:
        break
    case 4:
        break
    default:
        break
    }
    return cell

}
func tableView(tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? {
    return nil
}

CustomTableViewCell

import UIKit
class CustomAddTraining: UITableViewCell, UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate {

let categoryList = ["Front", "Back", "Abnominal", "Leg", "Hip"]
var categorySelected = ""
var textFieldInputed = ""
var test = "test"

@IBOutlet weak var done: UIButton?
@IBOutlet weak var decideButton: UIButton?
@IBOutlet weak var myTextField: UITextField?

@IBOutlet weak var myPicker: UIPickerView?


override func awakeFromNib() {
    super.awakeFromNib()
    myTextField?.delegate = self
    myTextField?.borderStyle = .RoundedRect
    myPicker?.delegate = self
    myPicker?.dataSource = self
    decideButton?.hidden = true
}



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

    // Configure the view for the selected state

}

func textFieldDidBeginEditing(textField: UITextField) {
    decideButton!.hidden = false
}

func textFieldDidEndEditing(textField: UITextField) {
    textFieldInputed = (textField.text)!
    print(textFieldInputed)
    print(categorySelected)
}


@IBAction func decideAction(sender: AnyObject) {
    textFieldShouldReturn(myTextField!)
}

func textFieldShouldEndEditing(textField: UITextField) -> Bool {
    decideButton!.hidden = true
    return true
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
    myTextField!.resignFirstResponder()
    return true
}



//pickerに表示する列数を返すデータ・ソースメソッド
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{
    return 1
}

//行数を返す
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
    return categoryList.count

}
//表示するデータを返す
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return categoryList[row]
}
//セルを選択したときの処理 Realmに保存
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

    categorySelected = categoryList[row]
    print(categorySelected)
    print(textFieldInputed)
}



@IBAction func saveRealmAction(sender: AnyObject) {
    print(textFieldInputed)
    print(categorySelected)
}
}