Swift 1.1およびXcode 6.2の使用。
単一のカスタムUIViewController
サブクラスを含むUIStoryboardがあります。その上に、そのコントローラからサブクラスへの@IBOutlet
タイプの接続がありますUIView
UIView
ストーリーボードのます。そのビューのサブビューにも同様のアウトレットがあります。図Aを参照してください。
しかし、実行時には、これらのプロパティはゼロです(図B)。確かに、Interface Builderでコンセントを接続していることは確かです。
考え:
- サブクラスのサブクラスを使用しているために、初期化で何かがおかしくなっている可能性がありますか?初期化子を上書きしていません
awakeFromNib:
何らかの理由で呼び出されていません- 多分それはサブビューのサブビューに接続していません
私が試したこと:
- マッチング
@IBOutlet
とストーリーボードのアイテムタイプ(の代わりにUIView
) - プロパティとアウトレットを削除して再度追加した
図A *
図B
*隠されたコードFigure A
は次のとおりです。
@IBOutlet private var annotationOptionsView: UIView!
@IBOutlet private var arrivingLeavingSwitch: UISegmentedControl!
ありがとうございました。
clearView
ゼロになることを期待しています。それは私がまだリファクタリングしていないものです。図Aの脚注も参照してください。@ShaanSinghこれは正しいはずです。ストーリーボードからの接続は実行時に設定される(想定される)ため、nilにしないでください。
let vc = UIStoryboard(name: "LocationPickerModal", bundle: nil) .instantiateViewControllerWithIdentifier("LocationPickerModalViewController") as LocationPickerModalViewController