今私は経由して、nibファイルで別のViewControllerを呼び出しrootViewControllerを持っている:ペン先/ XIBオブジェクトのライフサイクル
このinitがあるself.popViewController = PopViewController(nibName: "PopUpViewController_iPhone6Plus", bundle: bundle)
:
override public init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
rootViewControllerがPopViewControllerをインスタンス化した後、それがもたらしますそれを経由して:
self.popViewController.showInView(self, animated: true)
ここでshowInViewは:
func showInView(myRootViewController : MyRootViewController!, animated: Bool)
{
self.myRootViewController = myRootViewController
myRootViewController.view.addSubview(self.view)
myTextField.delegate = self
if animated
{
self.showAnimate()
}
}
ここで、myTextFieldはPopViewControllerのIBOutletです。私はmyRootViewController.view.addSubview(self.view)
の前にmyTextField.delegate = self
を置くとエラーが発生することを認識しました。fatal error: unexpectedly found nil while unwrapping an Optional value
ですが、それ以降はすべてが問題ありません。
私はNib filesのためにドキュメンテーションを見てきましたし、私の質問は次のとおりです。
は私がmyRootViewController.view.addSubview(self.view)
前myTextField.delegate = self
を入れたときにIBOutletsは、ペン先の前に接続されませんので、私はエラーを取得していた理由ですビューが表示されますか?また
:エラーをスロー self.popViewController = NSBundle.mainBundle().loadNibNamed("PopViewController_iPhone6", owner: PopViewControllerSwift.self, options: nil).first as! PopViewControllerSwift
:NIBとビューコントローラをInit'ing
'NSUnknownKeyException', reason: '[<DeckWheel.PopUpAddDeckViewControllerSwift 0x10026cbe0> setValue:forUndefinedKey:]
しかし、2番目の質問では、ビューにアクセスした後にtextFieldデリゲートを設定しても、キー値エラーが返されます – YellowPillow
'owner'パラメータに送信するオブジェクトは、IBOutletsをフックしようとしますに。あなたはコンセントのいずれかのプロパティを持たないクラスのインスタンスの代わりに実際のクラスを送信しています – dan
@YellowPillow、 "第2の質問"のために、あなたは知っていますか?ダンはそれに答えましたが、上記です。 –