Objective-C
Bobby
- software
Moin
Kennt sich hier jemand mit Objective C aus?
ich habe eine h-DAtei mit XIB und m. In der m Datei soll eine Funktion aus einer anderen importierten Datei ausgeführt werden. DAs klappt auch alles wunderbar. NUR: der Code der importierten Datei soll erst nach dem Fertigladen der xib gestartet werden.
Also, wie kann ich die Funktion erst nach vollständigem Laden der XIB starten?
Gruß Bobby
Servus,
Kennt sich hier jemand mit Objective C aus?
Ein wenig, obwohl ich gerade keinen Mac zur Hand habe.
ich habe eine h-DAtei mit XIB und m.
Kurze Verständnisfrage: In der .h und .m ist der Code für das Objekt in der XIB, also irgend ein Controller?
In der m Datei soll eine Funktion aus einer anderen importierten Datei ausgeführt werden. DAs klappt auch alles wunderbar. NUR: der Code der importierten Datei soll erst nach dem Fertigladen der xib gestartet werden.
Bei der Verwendung von NIBs und XIBs kennt Objective-C/der Interface Builder die Methode awakeFromNib, die direkt nach dem Laden aus der NIB/XIB aufgerufen wird.
Viele Grüße,
Robert
Moin
Irgendwo hab ich ein Verständnisproblem.
ich habe eine update.h
@interface update : UIViewcontroller
.
.
.
dazu die m-Datei
# import "update.h"
@interface update()
@end
@implementation update
.
.
.
Nun habe ich eine weitere Datei:
angelegt, die eine Methode enthält mit dem Namen updatesdatas
Innerhalb der - (void) viewDidLoad-Methode geht der Aufruf wunderbar. Aber eben schon vor Laden der XIB
[dataupdate *du=[[dataupdate alloc] init];
[du updatedatas];
Wie bekomme ich das nun hin, das erst die XIB geladen wird und dann erst die Funktion ausgeführt wird? Was übersehe ich, bzw habe ich noch nicht verstanden?
Ich weiß, alles noch Low-Level, aber ich versuche mich gerade hinein zu denken.
Gruß Bobby
Moin
awakeFromNIB wird nun angesprochen. Dennoch wird zuerst die Funktion ausgeführt, bevor der View geladen wird. FURCHTBAR das ganz... Und ich weiß nun echt nicht mehr weiter...
Gruß Bobby
Servus,
awakeFromNIB wird nun angesprochen. Dennoch wird zuerst die Funktion ausgeführt, bevor der View geladen wird.
Welche Funktion wird zuerst ausgeführt? Laut Spezifikation sollte zumindest awakeFromNib erst aufgerufen werden, wenn die NIB-/XIB geladen ist.
Viele Grüße,
Robert
Moin
Welche Funktion wird zuerst ausgeführt?
Ich habe den aufruf der updatedatas Methode Indie awakeFromNib reingetan... Trotzdem wird diese noch vor dem Laden der xib ausgeführt... Irgendwas stimmt da nicht... Aber was verdammt????
Laut Spezifikation sollte zumindest awakeFromNib erst aufgerufen werden, wenn die NIB-/XIB geladen ist.
Ja,laut Spezifikationen.... Nur bei mir nich :/
Woran könntes denn noch liegen? :(
Gruß Bobby
Servus,
Ich habe den aufruf der updatedatas Methode Indie awakeFromNib reingetan... Trotzdem wird diese noch vor dem Laden der xib ausgeführt... Irgendwas stimmt da nicht... Aber was verdammt????
Gehört denn awakeFromNib zu dem Objekt, welches in der XIB als »File's Owner« definiert ist? Vielleicht liegt es daran. Ansonsten bin ich leider auch überfragt.
Viele Grüße,
Robert
Moin
Gehört denn awakeFromNib zu dem Objekt, welches in der XIB als »File's Owner« definiert ist? Vielleicht liegt es daran. Ansonsten bin ich leider auch überfragt.
Ja, gehört zu dem Objekt. NAja... muss ich weiter probieren. ABer danke für deine Hilfe.
Gruß Bobby
Moin
Gehört denn awakeFromNib zu dem Objekt, welches in der XIB als »File's Owner« definiert ist? Vielleicht liegt es daran. Ansonsten bin ich leider auch überfragt.
Hab grad geguckt... in der update.xib hab ich im Files Owner die Klasse update als Custom Class definiert. In der update.m liegt dann die Methode awakeFromNib.
Also solltes ordentlich definiert sein. Oder?
Gruß Bobby
Servus,
Hab grad geguckt... in der update.xib hab ich im Files Owner die Klasse update als Custom Class definiert. In der update.m liegt dann die Methode awakeFromNib.
Ich habe hier nur 10.5 mit Xcode 3.1.4. Dort gibt es im Interface Builder »Class Identity« und unter »Class« ist die zugehörige Klasse definiert. In der Implementierung heißt es dann,
- (IBAction)awakeFromNib
{
// Code, der eigentlich nach dem Laden der Nib/Xib ausgeführt wird
// …
}
Ich habe das an Hand einer „document-based application“ ausprobiert, sprich sowohl im »Application Controller« als auch im »Document Controller«: Die awakeFromNib von ersterem wird vermutlich nach dem Laden der MainMenu.xib ausgeführt, d.h. in der Methode kann ich auf alle Outlets (GUI-Objekte) zugreifen. Beim Document Controller sieht es genau so aus. Hier gibt es noch die Methode windowControllerDidLoadNib, die nach awakeFromNib ausgeführt wird.
Was ist denn dein genaues Problem? Kannst du nicht auf bestimmte Outlets zugreifen?
Viele Grüße,
Robert
Moin
So, habs gelöst... ViewDidAppear() macht nun genau was ich wollte.. Diese Funktion wird aufgerufen wenn der view erscheint (im übertragenen Sinne)... Und ich freu mich... Vielen Dank trotzdem...
Gruß Bobby