1

ich die Dokumentation las zu lernen, wie eine Zeile in einer Tabellenansicht hinzuzufügen, und ich fand dieses Beispiel:Legendes Beispielcode für eine Zeile in einer Tabellenansicht Hinzufügen

- (void)save:sender { 

    UITextField *textField = [(EditableTableViewTextField *)[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]] textField]; 

    SimpleEditableListAppDelegate *controller = (SimpleEditableListAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    NSString *newItem = textField.text; 

    if (newItem != nil) { 
     [controller insertObject:newItem inListAtIndex:[controller countOfList]]; 
    } 

    [self dismissModalViewControllerAnimated:YES]; 

} 

Ich verstehe nicht, die Methode: insertObject:inListAtIndex: oder was [[UIApplication sharedApplication] delegate]; steht für; stellen wir die Daten in eine Plist-Datei? Kann mir das jemand erklären? The UIApplication docs nicht wirklich helfen.

+0

Links zur Quelle Ihrer Frage sind hilfreich, ansonsten müssen wir nur den Kontext Ihrer Frage erraten. – mydogisbox

+0

@Iulius Cæsar: Danke Iulius Cæsar – Paul

Antwort

2

[[UIApplication sharedApplication] delegate] ist die Hauptanwendung delegiert, in der Regel ist dies eine Klasse mit dem Namen AppDelegate. Der Hauptanwendungsdelegat ist derjenige, der beim Start der Anwendung erstellt wird und der Hauptcontroller für Ihre Anwendung ist.

Ich gehe davon aus, dass Sie etwas ähnliches wie this Klasse als Ihre AppDelegate Klasse verwenden.

[controller insertObject:newItem inListAtIndex:[controller countOfList]];

Dies setzt voraus, dass Ihr AppDelegate Klasse eine Methode insertObject:inListAtIndex: auf sie benannt hat. Für die Klasse verknüpft ich das Verfahren wie folgt aussieht:

- (void)insertObject:(id)obj inListAtIndex:(NSUInteger)theIndex { 
    [list insertObject:obj atIndex:theIndex]; 
} 

So in diesem Fall wird das Verfahren, das Objekt zu einer Membervariable Ihrer AppDelegate Klasse Hinzufügen List genannt.

+0

danke, macht es mehr Sinn für mich, so sollte der Controller das AppDelegate verwenden, um die Daten zu speichern? Macht es einen Unterschied, die Daten im App-Delegaten oder im Controller zu speichern? Und wenn wir mit dem gleichen Beispiel weitermachen: Am Ende der Methode insertObject fügen wir 'reloadData' hinzu, um die Tabellenansicht zu aktualisieren. Danke – Paul

+0

Ich denke, du bist ein wenig verwirrt darüber, was der App-Delegierte ist. In diesem Fall ist die 'Controller'-Variable _IS_ Ihr App-Delegierter. Ein Teil des Problems ist, dass dies kein gutes Beispiel dafür ist, wie man einen uitableviewcontroller erstellt. Starten Sie http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html#//apple_ref/doc/uid/TP40007451 und wenn Sie weitere Fragen haben, posten Sie eine andere. – mydogisbox

+0

Besserer Link: http://developer.apple.com/library/ios/#DOCUMENTATION/UserExperience/Conceptual/TableView_iPhone/CreateConfigureTableView/CreateConfigureTableView.html # // Apple_ref/doc/uid/TP40007451-CH6-SW10 – mydogisbox

0

Es gibt keine Verbindung zu PLIST. Einfacher Nachrichtenaustausch mit Hilfe von Delegierten, um die Tabellenansicht zu ändern.

Von Apfel Dokumentation:

Wenn eine Tabellenansicht Bearbeitungsmodus wechselt und wenn Benutzer eine Bearbeitungssteuer klicken, sendet die Tabellenansicht eine Reihe von Meldungen an die Datenquelle und zu delegieren, aber nur, wenn sie diese Methoden implementieren. Diese Methoden ermöglichen es der Datenquelle und dem Delegaten, die Darstellung und das Verhalten von Zeilen in der Tabellenansicht zu verfeinern. Die Nachrichten ermöglichen ihnen auch, die Lösch- oder Einfügeoperation auszuführen.

dies lesen: http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html

Und eines der besten Bücher - Beginning iphone 4 (oder 5)

+0

Sie könnten diese Antwort besser machen, indem Sie sicherstellen, dass Sie alle Teile seiner Frage direkt beantworten. – mydogisbox

Verwandte Themen