3 Stimmen

popViewControllerAnimated aktualisiert die Informationen nicht iPhone SDK

Wenn ich versuche, einen Ansichts-Controller zu öffnen, aktualisiert er die Informationen für die vorherige Ansicht nicht. Beispiel: Ich habe eine Zelle, die Text in einem Etikett in View1 anzeigt. Wenn Sie auf die Zelle klicken, geht es zu View2 (zum Beispiel) Wenn ich eine Option in View2 wählen, wird popViewControllerAnimated verwendet, um zurück zu View1 zu gehen, jedoch möchte ich das Etikett jetzt mit der neuen Option in View1 aktualisiert werden.

Mein Dilemma besteht darin, dass beim Aufklappen von Ansicht2 die Beschriftung in Ansicht1 nicht aktualisiert wird. Hat jemand eine Idee? Ich habe versucht, ein [view1 reloadData]; hinzufügen, bevor die Ansicht pops, aber kein Glück.

//VIEW1 the cell that displays the label.
    ringLabel = [[UILabel alloc] initWithFrame: CGRectMake(25, 12.7f, 250, 20)];
    ringLabel.adjustsFontSizeToFitWidth = YES;
    ringLabel.textColor = [UIColor blackColor];
    ringLabel.font = [UIFont systemFontOfSize:17.0];
    ringLabel.backgroundColor = [UIColor clearColor];
    ringLabel.textAlignment = UITextAlignmentLeft;
    ringLabel.tag = 0;
    ringLabel.text = [plistDict objectForKey:@"MYOPTION"];
    [ringLabel setEnabled:YES];
    [cell addSubview: ringLabel];
    [ringLabel release];

//VIEW2 when cell clicked 
    CustomProfileViewController *cpvc = [CustomProfileViewController alloc];
    cpvc.ringtone = [ringList objectAtIndex:indexPath.row];
    [cpvc.tblCustomTable reloadData];
    [self.navigationController popViewControllerAnimated:YES];

6voto

jtbandes Punkte 110245

Sie möchten die Funktion überschreiben -viewWillAppear: auf dem ersten View-Controller und aktualisieren Sie dort die Beschriftung. (Stellen Sie sicher, dass Sie auch die super ).

Exemple :

- (void)viewWillAppear:(BOOL)animated {
    // This method is called whenever the view is going to appear onscreen.
    // (this includes the first time it appears.)
    ringLabel.text = [plistDict objectForKey:@"MYOPTION"];
    [super viewWillAppear:animated];
}

0voto

Morion Punkte 9351

Was ist Ihr plistDict-Objekt? Wie initialisieren Sie es? Sind Sie sicher, dass es den richtigen Wert für Ihren @"MYOPTION" Schlüssel enthält, nachdem die zweite Ansicht ausgeblendet wurde? Wie ich sehen kann, ist plistDict ein Objekt in Ihrem ersten viewController. Ich kann auch keinen Sinn in den letzten 4 Zeilen deines Codes sehen. Sie verursachen kein Nachladen von Daten, sondern ein Speicherleck.

0voto

austin Punkte 958

Stellen Sie sicher, dass Sie nichts Wichtiges in Ihrer dealloc-Methode verlieren. das brachte mich wochenlang durcheinander. ich gab eine Variable frei, die auf die in meinem Delegaten zeigte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X