Label automatisch aktualisieren

M

MacUser04

Neues Mitglied
Thread Starter
Dabei seit
19.03.2014
Beiträge
8
Reaktionspunkte
0
Hallo

Meine App besteht aus zwei ViewController, zwei Labels und drei Button.
Alle sind mit der gleichen Class verbunden.

Ich möchte einen einfachen Counter programmieren. Den Code dafür habe ich schon herausgefunden:

.h Datei:
Code:
[COLOR=#D12F1B][FONT=Menlo][COLOR=#78492a]#import [/COLOR]<UIKit/UIKit.h>[/FONT][/COLOR]
[FONT=Menlo]
[/FONT]
[FONT=Menlo][COLOR=#bb2ca2]int[/COLOR] counter;[/FONT]
[FONT=Menlo]
[/FONT]
[FONT=Menlo][COLOR=#bb2ca2]@interface[/COLOR] ViewController : [COLOR=#703daa]UIViewController[/COLOR] {[/FONT]

[FONT=Menlo]    [COLOR=#bb2ca2]IBOutlet[/COLOR] [COLOR=#703daa]UILabel[/COLOR] *counterLabel;[/FONT]
[FONT=Menlo]}[/FONT]
[FONT=Menlo]
[/FONT]
[FONT=Menlo]-([COLOR=#bb2ca2]IBAction[/COLOR])plus:([COLOR=#bb2ca2]id[/COLOR])sender;[/FONT]
[FONT=Menlo]
[/FONT]
[COLOR=#BB2CA2][FONT=Menlo]@end[/FONT][/COLOR]

.m Datei:

Code:
[FONT=Menlo]-([COLOR=#bb2ca2]IBAction[/COLOR])plus:([COLOR=#bb2ca2]id[/COLOR])sender {[/FONT]

[COLOR=#4F8187][FONT=Menlo][COLOR=#bb2ca2]if[/COLOR][COLOR=#000000] ([/COLOR]counter[COLOR=#000000] == [/COLOR][COLOR=#272ad8]0[/COLOR][COLOR=#000000]) {[/COLOR][/FONT][/COLOR]
[FONT=Menlo][COLOR=#4f8187]counter[/COLOR][COLOR=#000000] = [/COLOR][COLOR=#4f8187]counter[/COLOR][COLOR=#000000] +[/COLOR][COLOR=#272ad8]1[/COLOR][COLOR=#000000];[/COLOR][/FONT]
[COLOR=#4F8187][FONT=Menlo]counterLabel[COLOR=#000000].[/COLOR][COLOR=#703daa]text[/COLOR][COLOR=#000000] = [[/COLOR][COLOR=#703daa]NSString[/COLOR][COLOR=#3d1d81]stringWithFormat[/COLOR][COLOR=#000000]:[/COLOR][COLOR=#d12f1b]@"%i"[/COLOR][COLOR=#000000], [/COLOR]counter[COLOR=#000000]];[/COLOR][/FONT][/COLOR]
[FONT=Menlo]    }[/FONT]

[FONT=Menlo]}[/FONT]

Ich habe "plus" mit dem Button (Weiter) auf in dem ersten View, Button "Zurück" und Button "Add" auf der zweiten ViewController verbunden. "counterLabel" habe ich ebenfalls mit beiden Labeln verbunden.
Nun, wenn ich auf den Button "Weiter" in dem ersten ViewController klicke, gelange ich zur zweiten ViewControll. Durch den klick sollte sich das Label in der zweiten View in eine (1) verwandeln. Tut es aber leider nicht. Wenn ich auf "Add" klicke, ändert sich das Label in der zweiten View, aber in der ersten bleibt es das gleiche.

Wie schaffe ich es, dass sich das Label automatisch aktualisiert?

Gruss
 

Anhänge

  • Beschreibung1.jpg
    Beschreibung1.jpg
    48,1 KB · Aufrufe: 89
Ich verstehe nicht genau was Du erreichen willst, aber der erste Label ist ja mit dem ersten ViewController verbunden und er zweite mit dem zweiten VC.
Wenn Du im Code aus dem zweiten ViewController heraus den Wert des Label aus dem ersten ViewController verändert möchtests, musst Du über den AppDelegate an den ersten ViewController kommen und dort die entsprechende Aktion ausführen.

Das hört sich jetzt kompliziert an, aber man kommuniziert zwischen ViewControllern immer über den AppDelegate wenn man es den will.

Achtung: Im Prinzip willst Du das nicht, Du willst nur dass sich beide ViewController ein Datenmodell teilen in dem sie beide Werte für die Label finden.

Ich wollte Dir nur klarmachen, dass Komponenten in ViewControllern eigentlich mit Absicht voneinander getrennt sind.
Die eine Darstellung soll ja nicht die andere Steuern. (Es sei denn durch das gemeinsame Datenmodell.)

Oder ich habe komplett falsch verstanden was Du erreichen möchtest.
 
Mein Ziel ist, in beiden Label den Wert (1) angezeigt zu bekommen.
Das soll geschehen, wenn ich auf den Button "Weiter klicke.

Das Problem ist nur, dass sich das Label in der zweiten VC nicht von selber aktualisiert...

Vielleicht ist das AppDelegate eine Lösung, das müsstest du mir aber genauer erklären
 
Folgender Code soll Dir nur die Idee vermitteln:

AppDelegate definiert gemeinsames Datenmodell.
ViewController holt sich Datenmodell über AppDelegate
Wenn der zweite VC dargestellt wird, holt er sich die Daten neu.

Sollte jemand private Daten im ZIP finden, darf er sie haben.
(Ich habe die meisten Template Daten rausgenommen.)
 
Danke...
Darf ich fragen, wo das storyboard ist?
 
Hi, das Forum war wohl down.

Das storyboard sollte da sein ... ?
Storyboard.storyboard

Hier ist ein kleines Demo Programm mit UIView, Datasource und der Verdrahtung.
Hat nichts mit dem eigentlichen Problem zu tun, aber mir war langweilig.

So würde ich z.B mit Datasources arbeiten.
Hier ist der VC die Datasource, kann man aber auch in einer extra Klasse machen, oder eine Instanz im AppDelegate vorhalten.

Falls Du was wissen willst frag ruhig. Wenn ich am Wochende nichts mache, hab ich abends Zeit für sowas.

Mach Dir am Besten ein GitHub Repository, das kann ich dann forken und dir Pull Requests schicken.

Viel Spass.
 
Zurück
Oben Unten