Wird benutzerdefiniertes UIView von der Nib geladen, sind alle in nib enthaltenen Subviews null?

Habe ich eine benutzerdefinierte UIView Objekt mit einem nib definiert, dass die Ansicht/Untersicht layout. Meine Steckdosen angeschlossen sind, und wenn ich init das Objekt aus initWithFrame: alles in Ordnung ist.

Das problem das ich habe ist wenn ich mit IB einbetten der UIView in eine andere Feder; das benutzerdefinierte UIView erscheint, aber keines der subviews enthält es erscheinen - in der Tat, Ihre Symbole lösen zu null. Ich habe eine sehr minimale initWithCoder: und awakeFromNib: Umsetzung (nicht nur macht, Protokollierung), und mein Verständnis ist, dass die Feder wird deserialisiert die Untersichten sollten mindestens initialisiert werden während des Prozesses?

Den nur Schluss komme ich auf meine eigene ist, dass eines von zwei Dingen geschieht: entweder meine Steckdose Verweise sind korrupt/schlecht ist und nicht funktioniert, oder mein Verständnis von Last-sich-von-nib-Prozess ist gestört und ich bin etwas fehlt.

Vielen Dank im Voraus!

Edit: (Code gepostet, für die Nekto wie gewünscht... als du wirst sehen, es tut Protokollierung und das ist es, heh.)

- (id)initWithCoder:(NSCoder *)aDecoder {
    if ((self = [super initWithCoder:aDecoder])) {
        NSLog(@"ThumbnailGridView.initWithCoder frame= %f, %f", self.frame.size.width, self.frame.size.height);
    }
    return self;
}

- (void)awakeFromNib
{
    NSLog(@"ThumbnailGridView:awakeFromNib");
}

Edit 2: Federn, regler, Untersichten, usw..

Federn: ich habe eine einzelne Feder mit einem UIView. Diese UIView enthält eine einzige UIScrollView, die gefüllt ist mit einem raster von UIViews, die definiert sind, in eine andere Feder. (Hinweis: dieser Teil gut funktioniert, wie das füllen erfolgt programmgesteuert und arbeitet mit einem initWithFrame: call.) Das problem hier ist, dass der UIScrollView symbol nil, nach initWithCoder: und awakeFromNib: sind beide genannt, so dass Objekte nur Hinzugefügt, um null und nichts passiert. Wenn der scrollview symbol war nicht nil ist, ich bin mir sicher, dass das funktionieren würde.

Controller: Es sind zwei Controller, verwenden diese, ist man fertig mit initWithFrame: und funktioniert perfekt, der andere bettet Sie wie eine Feder-basierte Referenz. (Wie an anderer Stelle erwähnt hier die Definition einer UIView in IB, festlegen der benutzerdefinierten Klasse.) Ich trat durch die code-Ansicht -ist - korrekt initialisiert - nur seine subviews "fehlen".

Wird diese Hilfe geben ein klareres Bild von der situation?

InformationsquelleAutor der Frage strahlr | 2011-09-28

Schreibe einen Kommentar