2016-04-25 5 views
0

私は間違って何をしているのか正直に理解できません。instantiateViewControllerWithIdentifierからUIViewControllerをロードしています - 無しアウトレット

static let sharedInstance = UIStoryboard(name:"Main", bundle:nil).instantiateViewControllerWithIdentifier("IAPNEW") as! newIAPClass 

私がように、それをコンセントにアクセスしなくても、それを提示していた場合::

self.presentViewController(newIAPClass.sharedInstance, animated: true, completion: nil) 

それの作品を期待通りに(ショーのアップ)

私はこれが私のUIViewControllerのインスタンスを共有しています。

 newIAPClass.sharedInstance.lbl_full.text = "mMM" 
     self.presentViewController(newIAPClass.sharedInstance, animated: true, completion: nil) 

誰か、コンセントがnilである理由を任意のアイデア: - しかし、私は彼の店にアクセスしようとしているならば、それはエラー「nilを見つける」でクラッシュしていますか?

+0

2つのコード行のうち、クラッシュの原因となっているのはどちらですか? ( "mMM"の割り当て、または実際にビューコントローラを提示する) – user212514

+0

@ user212514です。 lbl_full行を削除した場合。期待どおりに表示されます。私はこのたくさんの時間を過ごしました。何が起こっているのか分かりません。正直なところです。 instantiateViewControllerWithIdentifierを実行する - ストーリーボードからインスタンスにアウトレットを接続するとします。 –

+1

アウトレットは後で設定されます。文字列をプロパティに格納し、viewDidLoadでラベルに移動します。 – vacawama

答えて

3

アウトレットが最初に設定されていません。これに対処する標準的な方法は、プロパティにデータを格納し、そのデータをviewDidLoadにアウトレットに移動することです。

これをシングルトンにロードするので、viewDidLoadは1回だけ呼び出されます。代わりに、プロパティのデータをviewWillAppearにアウトレットにコピーします。

関連する問題