こんにちは、一日中ハマっていたので質問させて下さい・・!

TableViewに返すCustomViewCellを作成しています。

・やりたいこと
大本のTableViewから、各xibファイルをレンダリングし、
そこでのデータを取ってきた後、それを元に処理するというのを実装しようとしたところ、
躓いてしまいました。

・状況
nibファイルを複数作成しており、そのTableViewのrowに応じて nibファイルをレンダリングしようとしております。
nibファイルには、cellにTextFieldクラスの物や、 UIPickerViewクラスのもの、 ボタンしかないものの3種類です。

以下のUITableViewCellを継承したCustomAddTrainingクラスは、複数のnibファイルに使用できるように、一つのファイルにまとめてあります。
もちろん各nibファイルにはこのCustomAddTrainingに設定してあります。
それが以下のソースです。

・問題点
現在の問題は、
myPicker :UIPickerView!と decideButton: UIButton!がnilと判定されることです。
UITextField!はnilではなく、問題なく動いているのですが、この2つがどうしてもnilとなってしまいます。

(当たり前ですが)ファイルを1つにまとめずに作れば問題なく動くのですが、
UITableViewCellを継承した一つのファイルにまとめると、宣言下のにも関わらず認識されません。

なぜなんでしょうか?ご教授願います!

import UIKit

class CustomAddTraining: UITableViewCell, UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate {

let category = ["Front", "Back", "Abnominal", "Leg", "Hip"]

@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()

    if myTextField != nil {
        myTextField.delegate = self
        myTextField.borderStyle = .RoundedRect
    }

    if myPicker.delegate != nil {
        myPicker.delegate = self
    }
    if myPicker.dataSource  != nil {
        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
}

@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 category.count

}
//表示するデータを返す
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return category[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    print(category[row])
}


}