0
@IBOutlet
はsuper.awakeFromNib()
の後で初期化されていましたが、それはnilですか?awakeFromNibの@IBOutletは初期化されていません
再現手順:
- は、新しいサブのUIViewを作成します。 MyView
- UIViewを作成し、「ファイルの所有者」を「MyView」に設定します。
- UIViewControllerのビューのストーリーボードで、「カスタムクラス」をMyViewに設定します。
@IBOutlet
- これでエラーが発生します。 4.
更新:
ストーリーボードを直接使用している場合は、これが機能します。
- サブUIViewを作成します。 MyView
- ストーリーボードでは、UIViewControllerビューにラベルを追加します。 MYVIEW へのUIViewControllerのビューセット「カスタムクラス」のストーリーボードで
- この作品
@IBOutlet
を接続します。
import UIKit class MyView: UIView { @IBOutlet weak var myLabel: UILabel! override func awakeFromNib() { super.awakeFromNib() self.myLabel.text = "Hello world" } override func didMoveToSuperview() { self.myLabel.text = "Hello world" } override func layoutSubviews() { self.myLabel.text = "Hello world" } override func didMoveToWindow() { self.myLabel.text = "Hello world" } }
コンセントが接続されていますか? – Oskar
同じ:致命的なエラー:アンラッピング中に予期せず見つかったオプション値 –
誰がナビゲーションバーを所有していますか?それがトップレベルのnibオブジェクトの場合は、強い参照をそれに接続する必要があります。そうでなければ、awakeFromNibに到達するまでに割り当てが解除されます。 – Darren