C ObjC: Zurück zu ViewController und neu-laden

Kerim10

Lieutenant
Registriert
Juli 2006
Beiträge
739
Hallo ihr!
Habe ein neues XCode Problem. Bin seit ca. einem Monat am Programmieren mit ObjC, einiges habe ich schon raus, anderes wiederum nicht....und zwar u.a. folgendes:
Schaut euch den Screenshot an:



Ich möchte mit Klick auf "save" in "Profil bearbeiten" zurück nach "Profil gelangen!
Habe es bisher mit
Code:
 [self.navigationController popViewControllerAnimated:YES];
gemacht, damit komm ich zwar zurück, aber bspw. ein Label in "Profil" wird dann nicht neu geladen.
Oder auch eine Table wird nicht neu beschrieben/geladen..
Info zu diesem Label:
Code:
@property (retain,nonatomic) UILabel *label;
und
Code:
@synthesize label;
...also daran habe ich gedacht.

Kann mir jemand helfen? Ist bestimmt ganz einfach..^^
 
hi,
bin eher in C konform....
aber vielleicht hilft es ja ein bisschen:
durch ein label (anscheinend ein pointer) haben wir ja die adresse von unserem Objekt.
durch Profilbearbeiten ... würde man dann ja die Attribute im Objekt verändern ala label->Adr. ; label->PLZ
nach dem Ändern/Speichern müsste also Unser Oberprogramm noch einmal unseren pointer neuladen (label) und diesen anzeigen

wäre vll gut, wenn du etwas mehr code zeigst. Dann kann man vll besser den Zusammenhang sehen
 
also, ich beschreib mein Problem mal ganz einfach, ohne den ganzen Text drumrum und ohne die Wirkliche Aufgabe der Methoden:

das Problem ist nicht, dass das *label.text (aus "Profil") nicht neu abgespeichert wird (also z.b. zu Beginn ist es nil und durch drücken eines Buttons in "Profilbearbeiten" wird das *label in irgendetwas verändert), sondern es wird tatsächlich in *label.text reingeschrieben, nur wird dieses in dem View des Viewcontrollers nicht aktualisiert/angezeigt.

Hier mal Auszüge:

Profil .m
Code:
@implementation Profil
@synthesize label;
//.....
- (void) methode
 {
DatenbankSchnittstelle* db = [[DatenbankSchnittstelle alloc] init];

if([db getadresse]!=nil){
        NSString *s=[db getadresse];
        label.text=s;
        NSLog(@"wird ausgeführt!");
        [daten addObject:s];
        [datendetail addObject:@"Adresse"];
}
 }

in editprofil .m
Code:
@implementation editProfil
@synthesize Adresse;

- (IBAction)save:(id)sender  // Button "Save" Aktion
{
   DatenbankSchnittstelle* db = [[DatenbankSchnittstelle alloc] init]; 
    
    [db setadresse:Adresse.text]; 
    
    [self.navigationController popViewControllerAnimated:YES]; // admit gehts zurück
    Profil* p= [[Profil alloc] init]; 
    [p methode];  
 // hier wird Methode aus Profil aufgerufen und auch ausgeführt (NSLog Ausgabe erscheint!

}

Es funktioniert alles, nur wird das nicht sichtbar gemacht in dem Label.
 
Manchmal war es in java notwendig eine doRepaint methode aufzurufen damit die UI richtig dargestellt wird. Da ich auch nur ein anfänger in objc bin müsste ich jetzt auch erstmal suchen wie das in objc geht.

mfg
 
Zurück
Oben