2016-04-25 12 views
0

Ich kann ehrlich nicht verstehen, was ich falsch mache.Loading UIViewController von instantiateViewControllerWithIdentifier - Null Ausgänge

Ich habe diese gemeinsame Instanz meines UIViewController:

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

Wenn ich es präsentieren bin, ohne es Stellen zugreifen, wie so:

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

Arbeiten ist es, als (Show up) erwartet . ABER - wenn ich versuche, seine Ausgänge zugreifen, es stürzt mit „gefunden Null“ Fehler:

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

Jemand, eine Idee, warum die Auslässe null sind?

+0

Wissen Sie, welche der beiden Codezeilen den Absturz verursacht? (Zuweisen von "mMM" oder tatsächlich präsentieren der View-Controller) – user212514

+0

@ user212514 Es tut. Wenn ich die lbl_full Linie entferne. Es zeigt wie erwartet. Ich habe das oft gemacht, ich habe keine Ahnung, was hier vor sich geht - ehrlich gesagt. Doing instanziateViewControllerWithIdentifier - Angenommen, die Ausgänge vom Storyboard zur Instanz zu verbinden –

+1

Die Ausgänge werden erst später eingerichtet. Speichern Sie Ihre Zeichenfolge in einer Eigenschaft und verschieben Sie sie dann in viewDidLoad in Ihr Label. – vacawama

Antwort

3

Die Ausgänge sind zunächst nicht eingerichtet. Die Standardmethode, um damit umzugehen, besteht darin, Ihre Daten in Eigenschaften zu speichern und diese Daten dann in Ihre Verkaufsstellen in viewDidLoad zu verschieben.

Da Sie dies in einem Singleton laden, wird viewDidLoad nur einmal aufgerufen. Kopieren Sie stattdessen Ihre Daten aus Ihren Eigenschaften in Ihre Verkaufsstellen in viewWillAppear.