Wie fügen Sie Werte aus Textfeld / Beschriftung auf ein array, wenn eine Schaltfläche klicken Sie in iphone
Ich habe ein Textfeld In das der Benutzer Werte eingeben kann von 1-10
unten im Textfeld habe ich button.
ich hinzufügen müssen, um die Werte in der text-Feld-array, wenn der Benutzer klickt auf Schaltfläche "fertig"
dazu schrieb ich code wie diesen.
- (void)viewDidLoad
{
[super viewDidLoad];
PainlevelsArray = [[NSMutableArray alloc] init]; //PainlevelsArray declared in .h
}
-(IBAction)doneClick:(id)sender
{
[PainlevelsArray addObject:txtField.text ];
//[PainlevelsArray insertObject:rateLabel.text atIndex:0 ];
NSLog(@"PainlevelsArray *** %@",PainlevelsArray);
[self.navigationController popToRootViewControllerAnimated:YES];
}
Aber jedes mal, wenn array zeigt nur die zuletzt hinzugefügten Wert nur in der log, wenn die Schaltfläche klickt, wie diese
Ausgabe auf der Konsole
========================
2012-05-07 10:11:15.689 ESPT[796:10d03] PainlevelsArray *** (
2
)
2012-05-07 10:11:27.984 ESPT[796:10d03] PainlevelsArray *** (
4
)
My array gets empty every time view loads, and adde a fresh entry when button clicks
Aber ich brauche wie diese
2012-05-07 10:11:27.984 ESPT[796:10d03] PainlevelsArray *** (
4,
5,
2,
6,
8,
)
Alle velues eingibt adde/eingefügt, um das vorhandene array.
Vielen Dank im Voraus
in ExerciseStartViewController
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
ExerciseResult *result = [[ExerciseResult alloc] init];
[self.navigationController pushViewController:result animated:YES];
[result release];
}
in aktuelle/ExerciseResult viewcontroller
- (void)viewDidLoad
{
[super viewDidLoad];
PainlevelsArray = [[NSMutableArray alloc] init]; //PainlevelsArray declared in .h
}
-(IBAction)doneClick:(id)sender
{
[PainlevelsArray addObject:txtField.text ];
//[PainlevelsArray insertObject:rateLabel.text atIndex:0 ];
NSLog(@"PainlevelsArray *** %@",PainlevelsArray);
[self.navigationController popToRootViewControllerAnimated:YES];
}
- Beschreiben Sie Ihre view-Controller.
- siehe meine beschriebenen view-Controller in Frage Bearbeiten
- ok, im dort, im caht Liste, aber u sind invisable
- Siehe unten meine Antwort gepostet....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie verwenden ein globales array.
Beste Lösung ist ein array deklarieren und in AppDelegate.h-Datei und alloc-init-dieses array in applicationdidfinishlaunch Methode.
Verwenden UserDefaults: Diese werden verwendet, um zu speichern Sie Ihre Anwendung Daten in Schlüssel-Wert-format. Die Werte/Objekte gespeichert, die userdefaults immer bleiben in Anwendung, bis Sie haben es nicht entfernt aus der sandbox. Benutzen Sie folgenden code zum speichern des Arrays in den userdefaults.
In AppDelegae applicationDidFinishLuanch Methode können Sie diese abrufen, array von userdefaults mit:
Müssen Sie deklarieren und initialisieren PainlevelsArray Global, d.h. in AppDelegate oder separate Klasse der shared-Instanz, wo der Speicher wurde einmal vergeben und es kann nicht mehr schreiben, seine Daten, obwohl eine beliebige Anzahl der Zeit, die Sie den Zugriff auf die Sprach-Klasse und so, dass es kontinuierlich fügt neue Wert in das array, und Sie werden das gewünschte Ergebnis zu erhalten.
Ich glaube, Sie könnten brach diese Art von code in der Sie Maßnahmen für Ihr kommen zu dieser Ansicht. Stattdessen haben Sie zur Brache zu nehmen als Globale ExerciseResult *Ergebnis
in .h
in .m
in der Sie die action-Methode Sie brach
Folgen Sie wie dass
Ich hoffe, dass es hilft Ihnen,
Erklären in Delegieren.h Seite
Delegieren.m Seite
In Ihre Schaltfläche Ansicht
Erklären Sie diesen code, wo u wollen, dass Ihr array, Sie können leicht get ur array.
Verwenden Sie diese Zeile von code, wenn Sie klicken Sie einfach schreiben, fügen Sie diese Zeile.
verwenden Sie nur dieses.
Sollten Sie verwenden Sie die Eigenschaften für ein array in dieser situation.
Initialisieren Sie das array
Dann fügen Sie die Zeichenfolge in das array nach jedem button-Klick